8 Self-hosted kraftfuld søgemaskinesoftware til dit produkt

Det virker skræmmende, men det er hverken komplekst eller tidskrævende at tilføje en kraftfuld søgefunktion til din applikation. Her er nogle solide anbefalinger!

Mens mange teknologier har imponeret i de sidste 2-3 årtier, er en søgning blandt de meget få, der er blevet integreret i vores liv. Det er overalt – e-handelswebsteder, blogs, vidensbaser og mere – ikke fordi et søgefelt og et ikon ser cool ud, men fordi det gør noget, der er desperat behov for.

Hvis du er en virksomhed, der leder efter en god søgeløsning eller er træt af din eksisterende, hvad gør du så?

Heldigvis behøver du ikke betale latterlige licensgebyrer, og du behøver heller ikke at opretholde et team på 20 udviklere og systemadministratorer. I dag har jeg nogle søgemaskineanbefalinger, der kan installeres og integreres på ingen tid, især af små-ish virksomheder med udviklerteams i størrelse 1-2.

MeiliSearch

En af de allerbedste og værdifulde søgemaskiner, du vil støde på, er MeiliSearch.

Så hvad får mig til at nævne MeiliSearch blandt mine bedste anbefalinger?

Her går.

Open Source

Al kildekoden, der driver MeiliSearch, er tilgængelig i det fri på GitHub. Det betyder, at udviklere selv kan undersøge enhver del af koden. Til gengæld kan virksomhederne være sikre på kvaliteten og hensigten (f.eks. ingen bagdøre eller scannere i programmet). Og selvfølgelig kan kyndige udviklere hjælpe med at forbedre teknologien endnu mere.

Fantastisk UX

MeiliSearch har ikke komplekse regler (såsom “a – b” betyder a, men ikke b). Bare skriv din søgning naturligt, og resultaterne vil begynde at dukke op flydende. Motoren er meget tolerant og imødekommende og leverer nøjagtige resultater, selv når der bruges tastefejl eller synonymer. Det understøtter også flere sprog.

Fantastisk DevEx

Udviklere vil elske MeiliSearch! Det er ikke kun tilpasseligt og skalerbart, men grænseflader som en REST API! Dokumentationen er også fremragende og fuldstændig. Selvom det er trivielt at foretage HTTP-opkald på ethvert sprog, gives eksempler fra fem sprog (JavaScript, Ruby, Python, Golang og PHP) til dem, der har travlt.

Simple søgeløsninger skal være enkle at bruge og sætte op. Som sådan markerer MeiliSearch alle felterne! Når du er glad for at fortsætte, kan du starte det på DigitalOcean med et enkelt klik.

Solr

Solr, en del af Apache-projektet, har eksisteret i et par år nu. Det er bygget på det velkendte og yderst pålidelige Lucene-bibliotek, som også driver den populære søgeløsning kaldet ElasticSearch. Alt dette mumbo-jumbo betyder, at Solr er blandt de mest kraftfulde, skalerbare, standard-kompatible, funktionsrige og pålidelige søgeløsninger.

Det bruges af giganter som Disney, eBay, Netflix, Zappos og BestBuy. Det betyder dog ikke, at du ikke kan køre en mindre, enklere installation (f.eks. en enkelt maskine, ingen skalering, ingen failover – ja, nogle gange er det fint) og gøre brug af dette kraftcenter kaldet Solr.

Så hvorfor bruge Solr?

Her er nogle gode grunde.

Nøjagtig og kraftfuld

Solr er blandt de mest præcise, dygtige og kraftfulde søgesystemer i verden. Plus, det er open source, hvilket forklarer, hvorfor store navne (som tidligere nævnt) har gjort en hurtig linje til det. Dens evne til at fordøje dokumenter og besvare søgeforespørgsler er uden sidestykke.

Enkel installation og vedligeholdelse

Installation af Solr er så simpelt som at udkomprimere og køre programmet. For simple enkeltmaskinesystemer kræves ingen vanskelig vedligeholdelse; hold øje med RAM-forbruget, da søgeløsninger generelt og Java-baserede teknologier i særdeleshed kan være ret RAM-hungrende (fordi de beholder eller forsøger at beholde alt i RAM for at give hurtige læsninger/skrivninger).

Admin panel

Solr kommer med et admin panel, der tillader visuel overvågning og konfiguration. Med en ubetydelig mængde træning kan selv ikke-udviklere lære at læse nøgleskemaerne. Ikke mange søgeløsninger på denne liste kommer med funktionalitet som denne.

Billedkilde: Officiel side

API-drevet, standard-kompatible

Solr leverer en resultatgrænseflade i en API, der kan håndtere flere formater – JSON, CSV, XML og binær. Det udsender overvågningsdata i henhold til JMX-standarden, en stor velsignelse for Java-udviklere.

Der er meget mere at sige til fordel for Solr, men at forsøge at dække alt vil tage os til tidens ende. 😂 Det er nok at sige, at Solr er en førsteklasses løsning, og du kan aldrig gå galt med den, uanset hvilken type data du arbejder med.

  Sådan opbygger du et PowerPoint-organisationsdiagram med Excel-data

Elasticsearch

Elasticsearch var, og er uden tvivl stadig, en pioner inden for fri-form tekstsøgning. Faktisk, selv i dag, hvis du beder en programmør eller sysadmin om en anbefaling om søgemaskiner, er Elasticsearch højst sandsynligt det eneste navn, de kommer med. Sikker på, i disse dage, vil en betydelig del også anbefale noget som Algolia, men vi har allerede dækket, hvordan det forløber. 🤪

Lad dig ikke vildlede af knappen “Start gratis prøveperiode” i grafikken ovenfor. Mens selve Elasticsearch-kerneteknologien er open source og gratis, forsøger virksomheden at tjene penge på sin indsats og målrette mod virksomheder. Derfor er det, du ser her, faktisk prøveversionen af ​​deres cloud-tjeneste, hvilket gør det nemt at administrere Elasticsearch, især når der er klynger involveret.

Uff, så mange webs at rede ud. Lad os opsummere: Elasticsearch er open source og gratis, og alle kan nemt konfigurere det og bruge det uden begrænsninger.

Og lad os nu som forventet dykke ned i grundene til at vælge Elasticsearch:

  • Moden, kamptestet søgemaskine. Det betyder, at du er langt mere tilbøjelig til at finde løsninger, hvis du sidder fast med “mærkelige” fejl.
  • Førsteklasses fokus på klyngedannelse, skalerbarhed og asynkron skrivning.
  • Tilgængelig via en simpel REST API (hvilket er hvad alle andre endte med at kopiere).
  • Dokumentorienteret, men understøtter skema hvis nødvendigt.
  • Vanvittigt hurtige og præcise resultater. Konfigurerbar søgehastighed.
  • Stjernedokumentation, både i mængde og nytte.
  • En komplet søg-og-analyse-skyplatform (ELK-stakken), hvis du har lyst til at betale for bekvemmeligheden.

Det eneste nit-pick, jeg ville have imod Elasticsearch, er det massive RAM-forbrug. Jeg mener, som konsulenter er det svært nok at overbevise kunder om at investere i en server, der koster $20/måned, hvilket desværre ikke er i nærheden af, hvad Elasticsearch efterspørger.

Hvis du er nysgerrig efter at lære Elasticsearch, så tjek dette Udemy-kursus ud.

Typesense

Typesense er en let, ligetil, men alligevel kraftfuld søgemaskine. Dem, der leder efter brugbarhed og enkelhed, bør bestemt prøve denne.

En af de bedste ting ved Typesense er, at du kan prøve det direkte på deres hjemmeside. Det kan spare frustration og tid i tilfælde, hvor du sætter alt op og prøver API’en. . . kun for at opdage, at en eller flere af funktionerne ikke fungerer, som du gerne ville have.

Det betyder ikke, at der kan være fejl i motoren; det er bare, at motorens holdning til noget måske ikke er din præference, eller det kan være direkte i konflikt med dit forretningsdomæne. Slåfejl, specielle symboler, synonymer og mere . . . du kan tjekke resultaterne, som motoren kaster ud direkte på hjemmesiden (de bruger en bogdatabase til dette).

Som du kan se, er dette afsnit lige under det øverste. I søgefeltet har jeg indtastet forespørgslen “tra”, og nedenfor ser jeg matchende resultater fra bogdatabasen (samt metadata — samlede resultater, nuværende side osv.).

Typesense har meget at gøre, når det kommer til en søgemaskine efter eget valg:

  • Teknologien bag er fuldt ud open source og indbydende.
  • Let at konfigurere en HA-opsætning (High Availability), hvis du skulle få brug for en.
  • Tolerant når det kommer til tastefejl og anden støj i søgeforespørgsler.
  • Et avanceret filtreringssystem til dem, der har brug for finmasket kontrol over søgeresultaterne.
  • Simpel REST API, selvom deres dokumenter vil få dig til at arbejde ekstra hårdt for at finde det!
  • Klienter (SDK’er) er tilgængelige for nogle af de vigtigste sprog (JavaScript, Python, Ruby og PHP).

Endelig, hvis du synes idéen om at opsætte nye servere er trættende, har Typesense også et cloud-tilbud, hvor provisionering tager et enkelt klik. Fakturering sker pr. time, og læsning og skrivning er uden beregning. Helt ærligt vil jeg sige, at dette er den bedre mulighed for de fleste virksomheder, forudsat at de har udarbejdet priserne på forhånd og sørget for, at det er en nettogevinst.

Alt i alt giver Typesense meget mening (ingen ordspil!), hvis du har brug for noget lille, smart, præcist og en rigtig arbejdshest.

  Hvad betyder "Andre Snapchattere"?

Sonic

Sonic er stolt af at være et ElasticSaerch-alternativ, der kører på “et par MB RAM”.

Hvordan er det muligt?

Nå, Java Virtual Machine (JVM) er kendt for at være RAM-hungrende (generelt spiser JVM’en kun opstart omkring 1 GB RAM); ingen overraskelse, derfor, at noget kodet i Rust-sproget (som giver fuld kontrol og hukommelsessikkerhed for udviklere) kan køre lige så hurtigt og kun bruge et par MB RAM.

Slap af, alle sammen! Det er bare projektets maskot.

I skrivende stund er der et par virksomheder opført blandt sine brugere, selvom jeg er sikker på, at der er et par flere, der ikke gad at tilføje deres navne. Jeg kan ikke huske hvordan eller den nøjagtige tidsramme, men jeg er stødt på Sonic tidligere; på det tidspunkt, mens jeg var glad for at se et alternativ med lav hukommelse, tænkte jeg, at det ville have brug for tid til at stabilisere og fjerne skjulte fejl. Nå, det ser ud til, at de mere eller mindre er ankommet; hvor populær Sonic bliver, er noget kun tiden vil vise.

Okay, så lange overvejelser til side, hvorfor skulle du overveje at bruge Sonic til din organisation/dit projekt?

Her er nogle grunde:

  • Ekstremt lavt hukommelsesfodaftryk, hvad søgemaskiner angår.
  • Biblioteker er tilgængelige for alle større programmeringssprog. Node, PHP og Rust er, hvad forfatterne selv udgav, mens andre blev skabt af fællesskabet (fryd dig, for eksotiske stive som Elixir og Nim er også dækket!).
  • Flere sprog er understøttet (det var for meget at tælle, men jeg tror i skrivende stund, at 40-50 sprog understøttes).
  • En overraskelse! Du kan endda bruge nye sprog, og motoren vil fungere (😂😂), selvom du mister nogle avancerede funktioner såsom stopord.
  • Meget hurtig motor. Hvis du tjekker deres GitHub-side, vil du se, at indtagelses- og søgetiderne var i mikrosekunder i flere tilfælde! Selvfølgelig var dette en enkelt-maskine-test, da netværksforsinkelse aldrig vil lade tallene være så lave.

Hvis du vil se denne motor i aktion, skal du gå til dette link (en af ​​deres brugervirksomheder) og lege med søgefeltet, du ser der:

Der er visse begrænsninger for Sonic som søgemaskine. Udviklerne har fremhævet og diskuteret dem åbent på deres GitHub-side. Mit råd vil være at undersøge denne liste nøje og fastslå, at dine use cases ikke er til fælles med deres domæne. Når det er sagt, har alting begrænsninger; det er bare, at de holdes skjult, og så opdager vi det ikke, før det er for sent. Derfor anser jeg Sonic for at være et godt valg til en søgemaskine.

TNSearch

Vi har nu en fascinerende post på denne liste. Den første interessante ting er, at denne funktionskomplette, produktionsklare søgemaskine blev skrevet i PHP!

Ja, af alle mulige sprog, PHP. Og jeg siger det ikke fordi jeg hader PHP, men fordi det er en kortvarig proces.

Den anden interessante ting er deres licens, i det mindste i skrivende stund. Faktisk er selve licensen MIT, så der er ingen problemer der, men forfatterne klassificerer denne software som PS4Ware; hvis du bruger TNTSearch i produktionen, bør du sende dem et PS4-spil! 😂😂 Nu er det ikke obligatorisk, som “bør” indikerer, men det er ufatteligt sjovt. Jeg håber også, at de opgraderer den til en PS5-licens, selvom det er for tidligt lige nu.

Uanset hvad jeg selv kommer fra en stærk PHP + Laravel-baggrund, sætter jeg stor pris på disse fyres indsats. Deres hjemmeside siger ikke meget, men lader til at indikere, at de er konsulenter, så jeg anbefaler stærkt, at du kontakter dem, hvis du har projekter!

Er der nu nogen gode grunde til at bruge TNTSearch i dine projekter?

Ja der er:

  • Kodet i PHP, til PHP, af PHP. PHP-økosystemet har brug for mere dedikerede løsninger af høj kvalitet som denne.
  • Vigtige funktioner såsom fuzzy søgning, geo-søgning og tekstklassificering.
  • Let at ændre søgeindekset, hvilket er stor fleksibilitet, der mangler i mange løsninger.
  • Stemming, BM25-rangering og brugerdefineret tokenisering sikrer høj nøjagtighed.
  • Nem implementering – ligesom enhver anden Composer-pakke!
  Hvad er et SSID, og ​​hvordan man ændrer det

Du kan tjekke motorydelsen her og se selv, hvor hurtig og præcis den er. Jeg vil understrege PHP-aspektet igen: Hvis du vedligeholder et PHP-projekt, vil du forblive inden for PHP-væggene så meget som muligt (hvorfor? tænk på omkostninger til genoptræning). Og til sådanne tilfælde bringer TNTSearch et værdiforslag, som er svært at afslå!

Vespa

Vespa er et bredt og tungt tilbud. Som et par andre poster på denne liste er den for stor til at blive fanget med få ord. Men jeg må prøve, så det gør jeg. 🙂 Vespa er en søgemaskine, selvfølgelig, men at bruge den som en almindelig søgemaskine vil spilde sit potentiale.

Vespa blev bygget til at håndtere uendelige mængder data (Big Data) og levere Machine Learning-drevne funktioner og endeløs tilpasning oven i det.

Vespa positionerer sig som en konkurrent til Elasticsearch og traditionelle databaser og giver en anstændig sammenligning af, hvad man skal bruge og hvornår.

Som du kan se, jo tættere du ønsker du kommer på Machine Learning-drevne operationer, jo mere mening giver Vespa. Som en ren søgemaskine for en lille til mellem-niveau virksomhed, tror jeg ikke, den har nogen fordele i forhold til andre muligheder.

Nu i betragtning af, at du genererer enorme mængder data kontinuerligt og ønsker at gøre beslutningstagningen bedre gennem AI/ML (en beskrivelse, der passer til mange SaaS-virksomheder i dag), er det her, hvorfor Vespa giver meget mening:

  • Open source: Ingen mærkelige licenser og ingen fældekontrakter. Og derudover ikke noget at betale, selvom jeg altid understreger, at virksomheder betaler en almindelig sum til de projekter, de bruger mest (selv $50/måned vil hjælpe dem meget).
  • Realtid: Vespa er virkelig realtid. Den kan ikke kun fordøje, knuse og søge efter data, mens den kommer ind; selv dens konfiguration kan ændres med det samme.
  • Skalerbar og tolerant: Vespa er triviel at skalere. Det reagerer også meget godt på den pludselige forsvinden af ​​noder, hvilket giver høj pålidelighed.
  • Rangering og anbefalinger: Søgning, rangering og Vespa-anbefalinger kan kombineres med strukturerede forespørgsler for at levere virkelig nøjagtige resultater.
  • Smertefri AI/ML: Vespa leveres med fortrænede ML-modeller af høj kvalitet. Du behøver ikke ansætte 20 dataforskere til at rense og bruge dine data.
  • Brugerdefinerede plugins: Der er et komplet sæt API’er, der hjælper udviklere med at skabe brugerdefinerede Java-plugins, hvis de skulle have brug for at ændre, hvordan motoren fungerer.

Vespa er massiv, uden tvivl, så det er klart for teams, der er en smule ud over startniveauet – uanset om det er teamstørrelse, teknisk dygtighed, infrastrukturbudgetter, daglige datamængder eller noget andet. For dette segment vil Vespa slå et hjem og kan varmt anbefales.

Ambar

For nogle virksomheder er søgedata ikke pænt transformeret og gemt som JSON-dokumenter allerede; det er snarere noget rod i ordets egentlige forstand – en kaotisk samling af alle mulige dokumenter såsom Word, PDF, HTML-filer osv. Hvis du er en af ​​dem og troede, at der ikke er noget håb for dig, vel at mærke hej til Ambar!

Det bedste ved Ambar er den store type filer, den kan arbejde med:

  • MS Office-filformater (.docx, .xlsx osv.), inklusive PowerPoint, Visio og Publisher!
  • OpenOffice filformater
  • PDF-dokumenter med automatisk OCR anvendt til at udtrække information.
  • Billeder
  • E-mail-arkivformater såsom PST (hej, Outlook-brugere!)
  • E-mail-beskeder med vedhæftede filer

Godterne slutter heller ikke her. Ambar er i stand til at arbejde med store filer (over 30 MB), ZIP-arkiver og multithreading for fuld CPU-udnyttelse og hurtigere resultater. Så hvis du har flere års dokumenter liggende på en disk på en glemt server, er det tid til at bringe det tilbage og sende alt til Ambar!

Konklusion

Søg 🔎 er kraftfuldt, søgning er magi, og søgning er overalt!

Det kan endda være sort magi, men i dag er der ingen grund til, at alle (selvfølgelig med lidt udviklerhjælp) ikke kan høste fordelene. Fra virksomheder til enkeltpersoner til regeringer giver søgemaskinerne på denne liste et tilbud med næsten ingen indsats med eksponentielle fordele og effekt.

Gå videre og få en cloud-server og installer den ovennævnte søgesoftware, du kan lide at opleve.