8 Self-hosted kraftfull sökmotorprogramvara för din produkt

Det verkar skrämmande, men att lägga till en kraftfull sökfunktion i din applikation är varken komplicerat eller tidskrävande. Här är några solida rekommendationer!

Även om många tekniker har imponerat under de senaste 2-3 decennierna, är en sökning bland de mycket få som har blivit en del av våra liv. Det finns överallt – e-handelssajter, bloggar, kunskapsbaser och mer – inte för att en sökruta och ikon ser coola ut, utan för att den gör något som behövs desperat.

Om du är ett företag som letar efter en bra söklösning eller är trött på din befintliga, vad gör du?

Tack och lov behöver du inte betala löjliga licensavgifter, och du behöver inte heller ha ett team på 20 utvecklare och systemadministratörer. Idag har jag några sökmotorrekommendationer som kan installeras och integreras på nolltid, särskilt av småföretag med utvecklarteam i storlek 1-2.

MeiliSearch

En av de allra bästa och värdefulla sökmotorerna du kommer att stöta på är MeiliSearch.

Så vad får mig att lista MeiliSearch bland mina bästa rekommendationer?

Här kommer.

Öppen källa

All källkod som driver MeiliSearch är tillgänglig i det fria på GitHub. Det betyder att utvecklare själva kan granska vilken del av koden som helst. I gengäld kan företagen vara säkra på kvalitet och avsikt (inga bakdörrar eller skannrar i programmet till exempel). Och naturligtvis kan kunniga utvecklare hjälpa till att förbättra tekniken ännu mer.

Bra UX

MeiliSearch har inga komplexa regler (som ”a – b” betyder a men inte b). Skriv bara in din sökning naturligt så börjar resultaten att dyka upp smidigt. Motorn är mycket tolerant och tillmötesgående och ger exakta resultat även när stavfel eller synonymer används. Den stöder också flera språk.

Bra DevEx

Utvecklare kommer att älska MeiliSearch! Det är inte bara anpassningsbart och skalbart utan gränssnitt som ett REST API! Dokumentationen är också utmärkt och komplett. Även om det är trivialt att göra HTTP-anrop på alla språk, ges exempel från fem språk (JavaScript, Ruby, Python, Golang och PHP) för dem som har bråttom.

Enkla söklösningar ska vara enkla att använda och ställa in. Som sådan markerar MeiliSearch alla rutorna! När du är nöjd med att fortsätta, sätt igång på DigitalOcean med ett klick.

Solr

Solr, en del av Apache-projektet, har funnits i några år nu. Det är byggt på det välkända och mycket pålitliga Lucene-biblioteket, som också driver den populära söklösningen ElasticSearch. Allt detta tumbo betyder att Solr är bland de mest kraftfulla, skalbara, standardkompatibla, funktionsrika och pålitliga söklösningarna.

Den används av giganter som Disney, eBay, Netflix, Zappos och BestBuy. Det betyder dock inte att du inte kan köra en mindre, enklare installation (säg en maskin, ingen skalning, ingen failover – ja, ibland är det bra) och använda detta kraftpaket som heter Solr.

Så varför använda Solr?

Här är några utmärkta skäl.

Noggrann och kraftfull

Solr är bland de mest exakta, kapabla och kraftfulla söksystemen i världen. Dessutom är det öppen källkod, vilket förklarar varför stora namn (som nämnts tidigare) har gjort en kort linje till den. Dess förmåga att smälta dokument och svara på sökfrågor är oöverträffad.

Enkel installation och underhåll

Att installera Solr är lika enkelt som att komprimera och köra programmet. För enkla system med en maskin krävs inget knepigt underhåll; håll koll på RAM-användningen, då söklösningar i allmänhet och Java-baserade teknologier i synnerhet kan vara ganska RAM-hungriga (eftersom de behåller eller försöker behålla allt i RAM-minnet för att ge snabba läsningar/skrivningar).

Adminpanel

Solr kommer med en adminpanel som tillåter visuell övervakning och konfiguration. Med en liten mängd utbildning kan även icke-utvecklare lära sig att läsa nyckeltabellerna. Det är inte många söklösningar på den här listan som kommer med funktionalitet som den här.

Bildkälla: Officiell sida

API-driven, standardkompatibel

Solr tillhandahåller ett resultatgränssnitt i ett API som kan hantera flera format – JSON, CSV, XML och binär. Den matar ut övervakningsdata enligt JMX-standarden, en stor välsignelse för Java-utvecklare.

Det finns mycket mer att säga till förmån för Solr, men att försöka täcka allt kommer att ta oss till tidens ände. 😂 Det räcker med att säga att Solr är en förstklassig lösning, och du kan aldrig gå fel med den, oavsett vilken typ av data du arbetar med.

Elasticsearch

Elasticsearch var, och är förmodligen fortfarande, en pionjär inom fritextsökning. Faktum är att även idag, om du ber en programmerare eller systemadministratör om en rekommendation på sökmotorer, är Elasticsearch högst sannolikt det enda namnet de kommer att komma på. Visst, nuförtiden kommer en stor del att rekommendera något som Algolia också, men vi har redan täckt hur det ser ut. 🤪

Låt dig inte vilseledas av knappen ”Starta gratis provperiod” i bilden ovan. Medan själva kärnan i Elasticsearch-tekniken är öppen källkod och gratis, försöker företaget att tjäna pengar på sina ansträngningar och rikta in sig på företag. Därför är det du ser här faktiskt testversionen av deras molntjänst, vilket gör det enkelt att hantera Elasticsearch, särskilt när det finns kluster inblandade.

Usch, så många nät att reda ut. Låt oss sammanfatta: Elasticsearch är öppen källkod och gratis, och vem som helst kan enkelt ställa in det och använda det utan några begränsningar.

Och nu, som väntat, låt oss dyka in i anledningarna till att välja Elasticsearch:

  • Mogen, stridstestad sökmotor. Det betyder att du är mycket mer benägen att hitta lösningar om du har fastnat med ”konstiga” buggar.
  • Förstklassigt fokus på klustring, skalbarhet och asynkron skrivning.
  • Tillgänglig via ett enkelt REST API (vilket är vad alla andra slutade med att kopiera).
  • Dokumentorienterad men stöder schema vid behov.
  • Galet snabba och exakta resultat. Konfigurerbar sökhastighet.
  • Stjärndokumentation, både i mängd och användbarhet.
  • En komplett sök-och-analysera molnplattform (ELK-stacken), om du känner för att betala för bekvämligheten.

Det enda nit-valet jag skulle ha mot Elasticsearch är den enorma RAM-förbrukningen. Jag menar, som konsulter är det svårt nog att övertyga kunder att investera i en server som kostar $20/månad, vilket tyvärr inte är i närheten av vad Elasticsearch kräver.

Om du är nyfiken på att lära dig Elasticsearch, kolla in den här Udemy-kursen.

Typsense

Typesense är en lätt, enkel, men ändå kraftfull sökmotor. De som letar efter användbarhet och enkelhet bör definitivt prova denna.

En av de bästa sakerna med Typesense är att du kan prova det direkt på deras hemsida. Det kan spara frustration och tid i de fall du ställer in allt och provar API:et. . . bara för att upptäcka att en eller flera av funktionerna inte fungerar som du skulle ha velat.

Därmed inte sagt att det kan finnas buggar i motorn; det är bara så att motorns uppfattning om något kanske inte är dina preferenser, eller så kan det vara helt i konflikt med din affärsdomän. Skrivfel, speciella symboler, synonymer och mer . . . du kan kontrollera resultaten som motorn skickar ut direkt på hemsidan (de använder en bokdatabas för detta).

Som du kan se ligger den här sektionen precis under den översta. I sökrutan har jag skrivit in frågan ”tra”, och nedan ser jag matchande resultat från bokdatabasen (liksom metadata – totalt resultat, aktuell sida, etc.).

Typesense har mycket att göra när det kommer till en valfri sökmotor:

  • Tekniken bakom är helt öppen källkod och välkomnande.
  • Lätt att konfigurera en HA-inställning (High Availability), om du skulle behöva en.
  • Tolerant när det kommer till stavfel och annat brus i sökfrågor.
  • Ett avancerat filtreringssystem för dig som behöver finkornig kontroll över sökresultaten.
  • Enkelt REST API, även om deras dokument kommer att få dig att arbeta extra hårt för att hitta det!
  • Klienter (SDK) är tillgängliga för några av de större språken (JavaScript, Python, Ruby och PHP).

Slutligen, om du tycker att idén att sätta upp nya servrar är tröttsam, har Typesense också ett molnerbjudande där provisionering tar ett enda klick. Fakturering sker per timme, och läsning och skrivning är obegränsat. Ärligt talat kan jag säga att detta är det bättre alternativet för de flesta företag, förutsatt att de har räknat ut prissättningen i förväg och sett till att det är en nettovinst.

Sammantaget är Typesense mycket vettigt (ingen ordlek!) om du behöver något litet, smart, exakt och en riktig arbetshäst.

Sonisk

Sonic är stolt över att vara ett ElasticSaerch-alternativ som körs på ”några MB RAM”.

Hur är detta möjligt?

Ja, Java Virtual Machine (JVM) är känd för att vara RAM-hungrig (i allmänhet äter JVM upp cirka 1 GB RAM); ingen överraskning därför att något kodat i Rust-språket (som ger full kontroll och minnessäkerhet för utvecklare) kan köras lika snabbt och bara använda några få MB RAM.

Slappna av, alla! Det är bara projektmaskoten.

I skrivande stund finns det ett par företag listade bland sina användare, även om jag är säker på att det finns några fler som inte brydde sig om att lägga till sina namn. Jag kommer inte ihåg hur eller exakt tidsram, men jag har stött på Sonic tidigare; på den tiden, medan jag var glad över att se ett alternativ med lågt minne, trodde jag att det skulle behöva tid för att stabilisera och lösa dolda buggar. Nåväl, det ser ut som att de mer eller mindre har kommit; Hur populär Sonic blir är något bara tiden kommer att utvisa.

Okej, så långa funderingar åsido, varför ska du överväga att använda Sonic för din organisation/projekt?

Här är några anledningar:

  • Extremt lågt minnesutrymme, vad gäller sökmotorer.
  • Bibliotek finns tillgängliga för alla större programmeringsspråk. Node, PHP och Rust är vad författarna själva släppte, medan andra skapades av communityn (gläd dig, för exotiska stela som Elixir och Nim är också täckta!).
  • Flera språk stöds (det var för mycket att räkna, men jag tror när jag skriver, 40-50 språk stöds).
  • En överraskning! Du kan till och med använda nya språk, och motorn kommer att fungera (😂😂), även om du kommer att förlora några avancerade funktioner som stoppord.
  • Mycket snabb motor. Om du kollar in deras GitHub-sida så ser du att intags- och söktiderna var i mikrosekunder i flera fall! Naturligtvis var detta ett test på en maskin, eftersom nätverkslatens aldrig kommer att låta siffrorna vara så låga.

Om du vill se denna motor i aktion, gå till den här länken (ett av deras användarföretag) och spela med sökrutan du ser där:

Det finns vissa begränsningar för Sonic som sökmotor. Utvecklarna har lyft fram och diskuterat dem öppet på sin GitHub-sida. Mitt råd skulle vara att noggrant undersöka den här listan och fastställa att dina användningsfall inte är gemensamma med deras domän. Som sagt, allt har begränsningar; det är bara det att de hålls gömda, så vi inser det inte förrän det är för sent. Därför anser jag att Sonic är ett utmärkt val för en sökmotor.

TNTSearch

Vi har nu ett fascinerande inlägg på den här listan. Det första intressanta är att denna funktionskompletta, produktionsklara sökmotor skrevs i PHP!

Ja, av alla möjliga språk, PHP. Och jag säger det inte för att jag hatar PHP utan för att det är en kortlivad process genom design.

Det andra intressanta är deras licens, åtminstone i skrivande stund. Egentligen är själva licensen MIT, så det finns inga problem där, men författarna klassificerar denna programvara som PS4Ware; om du använder TNTSearch i produktionen bör du skicka ett PS4-spel till dem! 😂😂 Nu är det inte obligatoriskt, som ”bör” indikerar, men det är otroligt roligt. Jag hoppas också att de uppgraderar den till en PS5-licens, även om det är för tidigt just nu.

Hur som helst, jag kommer själv från en stark PHP + Laravel-bakgrund och jag uppskattar verkligen de här killarnas ansträngningar. Deras hemsida säger inte så mycket men verkar tyda på att de är konsulter, så jag rekommenderar starkt att du kontaktar dem om du har projekt!

Finns det några goda skäl att använda TNTSearch i dina projekt?

Ja det finns:

  • Kodad i PHP, för PHP, av PHP. PHP-ekosystemet behöver mer dedikerade, högkvalitativa lösningar som denna.
  • Viktiga funktioner som suddig sökning, geo-sökning och textklassificering.
  • Lätt att ändra sökindex, vilket är stor flexibilitet som saknas i många lösningar.
  • Stemming, BM25-rankning och anpassad tokenisering säkerställer hög noggrannhet.
  • Enkel distribution – precis som alla andra Composer-paket!

Du kan kolla in motorns prestanda här och se själv hur snabb och exakt den är. Jag vill betona PHP-aspekten igen: om du upprätthåller ett PHP-projekt vill du stanna inom PHP-väggarna så mycket som möjligt (varför? tänk på kostnader för omutbildning). Och för sådana fall ger TNTSearch ett värdeförslag som är svårt att tacka nej till!

Vespa

Vespa är ett brett och tungt erbjudande. Liksom ett par andra poster på den här listan är den för stor för att fångas med några få ord. Men jag måste försöka, så det gör jag. 🙂 Vespa är en sökmotor, visst, men att använda den som en vanlig sökmotor kommer att slösa bort dess potential.

Vespa byggdes för att hantera oändliga mängder data (Big Data) och ge maskininlärningsdrivna funktioner och oändlig anpassning utöver det.

Vespa positionerar sig som en konkurrent till Elasticsearch och traditionella databaser och ger en anständig jämförelse om vad man ska använda och när.

Som du kan se, ju närmare du önskar att du kommer maskininlärningsdrivna verksamheter, desto mer vettigt är Vespa. Som en ren sökmotor för ett litet till medelstort företag tror jag inte att den har några fördelar jämfört med andra alternativ.

Nu, med tanke på att du genererar enorma mängder data kontinuerligt och vill göra beslutsfattandet bättre genom AI/ML (en beskrivning som passar många SaaS-företag idag), är det här varför Vespa är mycket vettigt:

  • Öppen källkod: Inga konstiga licenser och inga fällningskontrakt. Och inget att betala utöver det, även om jag alltid betonar att företag betalar en vanlig summa till de projekt de använder mest (även 50 USD/månad kommer att hjälpa dem mycket).
  • Realtid: Vespa är verkligen realtid. Den kan inte bara smälta, knacka och söka efter data när den kommer in; även dess konfiguration kan ändras i farten.
  • Skalbar och tolerant: Vespa är trivial att skala. Den svarar också mycket bra på det plötsliga försvinnandet av noder, vilket ger hög tillförlitlighet.
  • Rankning och rekommendationer: Sök-, ranknings- och Vespa-rekommendationer kan kombineras med strukturerade frågor för att ge riktigt exakta resultat.
  • Smärtfri AI/ML: Vespa levereras med högkvalitativa, förutbildade ML-modeller. Du behöver inte anställa 20 datavetare för att rensa och använda din data.
  • Anpassade plugins: Det finns en komplett uppsättning API:er som hjälper utvecklare att skapa anpassade Java-plugins om de skulle behöva ändra hur motorn fungerar.

Vespa är enorm, utan tvekan, så det är uppenbart för team som ligger lite utanför startnivån – oavsett om det är lagstorlek, teknisk skicklighet, infrastrukturbudgetar, dagliga datavolymer eller något annat. För detta segment kommer Vespa att slå ett hem och rekommenderas starkt.

Ambar

För vissa företag är sökdata inte prydligt transformerad och lagrad som JSON-dokument redan; snarare är det en röra i ordets rätta bemärkelse – en kaotisk samling av alla möjliga sorters dokument som Word, PDF, HTML-filer, etc. Om du är en av dem och trodde att det inte finns något hopp för dig, ja, säg hej till Ambar!

Det bästa med Ambar är den stora typen av filer som den kan arbeta med:

  • MS Office-filformat (.docx, .xlsx, etc.), inklusive PowerPoint, Visio och Publisher!
  • OpenOffice filformat
  • PDF-dokument med automatisk OCR tillämpad för att extrahera information.
  • Bilder
  • E-postarkivformat som PST (hej, Outlook-användare!)
  • E-postmeddelanden med bilagor

Godsakerna slutar inte här heller. Ambar kan arbeta med stora filer (över 30 MB), ZIP-arkiv och multithreading för fullt CPU-utnyttjande och snabbare resultat. Så om du har flera års dokument liggande på någon disk på en bortglömd server, är det dags att ta tillbaka den och mata allt till Ambar!

Slutsats

Sök 🔎 är kraftfullt, sökning är magi och sökning är överallt!

Det kan till och med vara svart magi, men idag finns det ingen anledning till att alla (med lite utvecklarhjälp, förstås) inte kan skörda dess fördelar. Från företag till privatpersoner till regeringar, sökmotorerna i den här listan erbjuder ett nästan noll-ansträngningserbjudande med exponentiella fördelar och effekt.

Gå vidare och skaffa en molnserver och installera den ovan listade sökmjukvaran du gillar att uppleva.