8 Self-hosted kraftig søkemotorprogramvare for produktet ditt

Det virker skremmende, men å legge til en kraftig søkefunksjon i applikasjonen din er verken komplisert eller tidkrevende. Her er noen solide anbefalinger!

Mens mange teknologier har imponert de siste 2-3 tiårene, er et søk blant de svært få som har blitt en integrert del av livene våre. Det er overalt – e-handelssider, blogger, kunnskapsbaser og mer – ikke fordi en søkeboks og et ikon ser kult ut, men fordi det gjør noe som er sårt nødvendig.

Hvis du er en bedrift som leter etter en god søkeløsning eller er lei av den eksisterende, hva gjør du?

Heldigvis trenger du ikke betale latterlige lisensavgifter, og du trenger heller ikke å opprettholde et team på 20 utviklere og systemadministratorer. I dag har jeg noen søkemotoranbefalinger som kan installeres og integreres på kort tid, spesielt av småbedrifter med utviklerteam i størrelse 1-2.

MeiliSearch

En av de aller beste og verdifulle søkemotorene du kommer over er MeiliSearch.

Så, hva får meg til å liste MeiliSearch blant mine beste anbefalinger?

Her går.

Åpen kilde

All kildekoden som driver MeiliSearch er tilgjengelig åpent på GitHub. Det betyr at utviklere kan undersøke hvilken som helst del av koden selv. Til gjengjeld kan bedrifter være sikre på kvaliteten og intensjonen (for eksempel ingen bakdører eller skannere i programmet). Og selvfølgelig kan kunnskapsrike utviklere bidra til å forbedre teknologien enda mer.

Flott UX

MeiliSearch har ikke komplekse regler (som «a – b» betyr a, men ikke b). Bare skriv inn søket ditt naturlig, og resultatene vil begynne å vises flytende. Motoren er svært tolerant og imøtekommende, og gir nøyaktige resultater selv når skrivefeil eller synonymer brukes. Den støtter også flere språk.

Flott DevEx

Utviklere vil elske MeiliSearch! Det er ikke bare tilpassbart og skalerbart, men grensesnitt som et REST API! Dokumentasjonen er også utmerket og fullstendig. Selv om det er trivielt å gjøre HTTP-anrop på alle språk, gis eksempler fra fem språk (JavaScript, Ruby, Python, Golang og PHP) for de som har det travelt.

Enkle søkeløsninger skal være enkle å bruke og sette opp. Som sådan merker MeiliSearch av i alle boksene! Når du er fornøyd med å fortsette, sett i gang på DigitalOcean med ett klikk.

Solr

Solr, en del av Apache-prosjektet, har eksistert i noen år nå. Det er bygget på det velkjente og svært pålitelige Lucene-biblioteket, som også driver den populære søkeløsningen ElasticSearch. Alt dette mumbo-jumboet betyr at Solr er blant de kraftigste, skalerbare, standardkompatible, funksjonsrike og pålitelige søkeløsningene.

Den brukes av storheter som Disney, eBay, Netflix, Zappos og BestBuy. Det betyr imidlertid ikke at du ikke kan kjøre en mindre, enklere installasjon (f.eks. én maskin, ingen skalering, ingen failover – vel, noen ganger er det greit) og bruke dette kraftsenteret som heter Solr.

Så hvorfor bruke Solr?

Her er noen gode grunner.

Nøyaktig og kraftig

Solr er blant de mest nøyaktige, dyktige og kraftige søkesystemene i verden. I tillegg er det åpen kildekode, noe som forklarer hvorfor store navn (som nevnt tidligere) har kommet rett på banen. Dens evne til å fordøye dokumenter og svare på søkespørsmål er uten sidestykke.

Enkel installasjon og vedlikehold

Å installere Solr er like enkelt som å komprimere og kjøre programmet. For enkle systemer med én maskin er det ikke nødvendig med noe vanskelig vedlikehold; følg med på RAM-bruken, da søkeløsninger generelt og Java-baserte teknologier spesielt kan være ganske RAM-hungrige (fordi de beholder eller prøver å beholde alt i RAM for å gi rask lesing/skriving).

Administrasjonspanel

Solr kommer med et administrasjonspanel som tillater visuell overvåking og konfigurasjon. Med en liten mengde trening kan selv ikke-utviklere lære å lese nøkkeldiagrammene. Ikke mange søkeløsninger på denne listen kommer med funksjonalitet som denne.

Bildekilde: Offisiell side

API-drevet, standard-kompatibel

Solr gir et resultatgrensesnitt i et API som kan håndtere flere formater – JSON, CSV, XML og binær. Den sender ut overvåkingsdata i henhold til JMX-standarden, en stor velsignelse for Java-utviklere.

Det er mye mer å si til fordel for Solr, men å prøve å dekke alt vil ta oss til tidenes ende. 😂 Det er nok å si at Solr er en førsteklasses løsning, og du kan aldri gå galt med den, uansett hvilken type data du jobber med.

  Hva er en "Qi-sertifisert" trådløs lader?

Elasticsearch

Elasticsearch var, og er uten tvil fortsatt, en pioner innen fritekstsøk. Faktisk, selv i dag, hvis du spør en programmerer eller systemadministrator om en anbefaling på søkemotorer, er Elasticsearch høyst sannsynlig det eneste navnet de kommer opp med. Jada, i disse dager vil en betydelig del anbefale noe som Algolia også, men vi har allerede dekket hvordan det utvikler seg. 🤪

Ikke bli villedet av «Start gratis prøveversjon»-knappen i grafikken over. Mens selve kjerneteknologien til Elasticsearch er åpen kildekode og gratis, prøver selskapet å tjene penger på innsatsen og målrette mot bedrifter. Derfor er det du ser her faktisk prøveversjonen av skytjenesten deres, noe som gjør det enkelt å administrere Elasticsearch, spesielt når det er klynger involvert.

Uff, så mange nett å løse. La oss oppsummere: Elasticsearch er åpen kildekode og gratis, og alle kan sette det opp enkelt og bruke det uten noen begrensninger.

Og nå, som forventet, la oss dykke ned i årsakene til å velge Elasticsearch:

  • Moden, kamptestet søkemotor. Dette betyr at du er langt mer sannsynlig å finne løsninger hvis du sitter fast med «rare» feil.
  • Førsteklasses fokus på klynging, skalerbarhet og asynkron skriving.
  • Tilgjengelig via en enkel REST API (som er det alle andre endte opp med å kopiere).
  • Dokumentorientert, men støtter skjema om nødvendig.
  • Vanvittig raske og nøyaktige resultater. Konfigurerbar søkehastighet.
  • Stjernedokumentasjon, i mengden så vel som nytten.
  • En komplett søk-og-analyse-skyplattform (ELK-stakken), hvis du har lyst til å betale for bekvemmeligheten.

Det eneste nit-valget jeg ville hatt mot Elasticsearch er det enorme RAM-forbruket. Jeg mener, som konsulenter er det vanskelig nok å overbevise klienter om å investere i en server som koster $20 per måned, noe som dessverre ikke er i nærheten av det Elasticsearch krever.

Hvis du er nysgjerrig på å lære Elasticsearch, så sjekk ut dette Udemy-kurset.

Typesense

Typesense er en lett, enkel, men likevel kraftig søkemotor. De som leter etter nytte og enkelhet bør definitivt prøve denne.

Noe av det beste med Typesense er at du kan prøve det rett på nettsiden deres. Det kan spare frustrasjon og tid i tilfeller der du setter opp alt og prøver API. . . bare for å oppdage at en eller flere av funksjonene ikke fungerer slik du ville ha ønsket.

Det betyr ikke at det kan være feil i motoren; det er bare at motorens oppfatning av noe kanskje ikke er din preferanse, eller det kan være helt i konflikt med forretningsdomenet ditt. Skrivefeil, spesielle symboler, synonymer og mer . . . du kan sjekke resultatene motoren kaster ut rett på hjemmesiden (de bruker en bokdatabase for dette).

Som du kan se, er denne delen rett under den øverste. I søkeboksen har jeg skrevet inn søket «tra», og nedenfor ser jeg samsvarende resultater fra bokdatabasen (samt metadata – totale resultater, gjeldende side osv.).

Typesense har mye å gjøre når det kommer til en søkemotor du ønsker:

  • Teknologien bak er fullstendig åpen kildekode og innbydende.
  • Enkelt å konfigurere et HA-oppsett (High Availability), hvis du skulle trenge en.
  • Tolerant når det kommer til skrivefeil og annen støy i søk.
  • Et avansert filtreringssystem for de som trenger finmasket kontroll over søkeresultatene.
  • Enkel REST API, selv om dokumentene deres vil få deg til å jobbe ekstra hardt for å finne det!
  • Klienter (SDK-er) er tilgjengelige for noen av hovedspråkene (JavaScript, Python, Ruby og PHP).

Til slutt, hvis du synes ideen om å sette opp nye servere er slitsom, har Typesense også et skytilbud der klargjøring tar et enkelt klikk. Fakturering skjer per time, og lesing og skriving er ubegrenset. Ærlig talt vil jeg si at dette er det bedre alternativet for de fleste bedrifter, forutsatt at de har utarbeidet prisene på forhånd og sørget for at det er en nettogevinst.

Alt i alt gir Typesense mye mening (ingen ordspill!) hvis du trenger noe lite, glatt, presist og en ekte arbeidshest.

  TagSpaces kombinerer tekst og farger til et smart filmerkingssystem

Sonic

Sonic er stolt av å være et ElasticSaerch-alternativ som kjører på «noen få MB RAM».

Hvordan er dette mulig?

Vel, Java Virtual Machine (JVM) er kjent for å være RAM-hungrig (vanligvis, bare oppstart av JVM spiser opp rundt 1 GB RAM); Det er derfor ingen overraskelse at noe som er kodet i Rust-språket (som gir full kontroll og minnesikkerhet for utviklere) kan kjøre like raskt og bruke bare noen få MB RAM.

Slapp av, alle sammen! Det er bare prosjektmaskoten.

I skrivende stund er det et par selskaper oppført blant brukerne, men jeg er sikker på at det er noen flere som ikke gadd å legge til navnene deres. Jeg husker ikke hvordan eller nøyaktig tidsramme, men jeg har vært borti Sonic tidligere; på den tiden, mens jeg var glad for å se et alternativ med lavt minne, tenkte jeg at det ville trenge tid til å stabilisere og stryke ut skjulte feil. Vel, det ser ut som de har mer eller mindre kommet; hvor populær Sonic blir er noe bare tiden vil vise.

Ok, så lange tanker til side, hvorfor bør du vurdere å bruke Sonic for din organisasjon/prosjekt?

Her er noen grunner:

  • Ekstremt lavt minne fotavtrykk, så langt som søkemotorer går.
  • Biblioteker er tilgjengelige for alle store programmeringsspråk. Node, PHP og Rust er det forfatterne selv ga ut, mens andre ble skapt av fellesskapet (gled dere, for eksotiske stive som Elixir og Nim er også dekket!).
  • Flere språk støttes (det var for mye å telle, men jeg tror i skrivende stund støttes 40-50 språk).
  • En overraskelse! Du kan til og med bruke nye språk, og motoren vil fungere (😂😂), selv om du vil miste noen avanserte funksjoner som stoppord.
  • Veldig rask motor. Hvis du sjekker ut GitHub-siden deres, vil du se at inntaks- og søketidene var i mikrosekunder i flere tilfeller! Selvfølgelig var dette en enkeltmaskintest, siden nettverksforsinkelse aldri vil la tallene være så lave.

Hvis du vil se denne motoren i aksjon, gå til denne lenken (en av deres brukerbedrifter) og lek med søkeboksen du ser der:

Det er visse begrensninger for Sonic som søkemotor. Utviklere har fremhevet og diskutert dem åpent på GitHub-siden deres. Mitt råd vil være å undersøke denne listen nøye og fastslå at brukstilfellene dine ikke er til felles med domenet deres. Når det er sagt, alt har begrensninger; det er bare det at de holdes skjult, og så skjønner vi det ikke før det er for sent. Derfor anser jeg Sonic for å være et godt valg for en søkemotor.

TNTSearch

Vi har nå en fascinerende oppføring på denne listen. Det første interessante er at denne funksjonsfulle, produksjonsklare søkemotoren ble skrevet i PHP!

Ja, av alle mulige språk, PHP. Og jeg sier det ikke fordi jeg hater PHP, men fordi det er en kortvarig prosess.

Den andre interessante tingen er lisensen deres, i hvert fall i skrivende stund. Egentlig er selve lisensen MIT, så det er ingen problemer der, men forfatterne klassifiserer denne programvaren som PS4Ware; hvis du bruker TNTSearch i produksjon, bør du sende dem et PS4-spill! 😂😂 Nå er det ikke obligatorisk, som «bør» indikerer, men det er ufattelig morsomt. Jeg håper også de oppgraderer den til en PS5-lisens, selv om det er for tidlig akkurat nå.

Uansett, kommer jeg fra en sterk PHP + Laravel bakgrunn selv, jeg setter stor pris på disse guttas innsats. Nettsiden deres sier ikke så mye, men ser ut til å indikere at de er konsulenter, så jeg anbefaler på det sterkeste at du tar kontakt med dem hvis du har prosjekter!

Er det noen gode grunner til å bruke TNTSearch i prosjektene dine?

Ja, det er det:

  • Kodet i PHP, for PHP, av PHP. PHP-økosystemet trenger mer dedikerte løsninger av høy kvalitet som denne.
  • Viktige funksjoner som uklart søk, geo-søk og tekstklassifisering.
  • Enkelt å endre søkeindeksen, noe som mangler stor fleksibilitet i mange løsninger.
  • Stemming, BM25-rangering og tilpasset tokenisering sikrer høy nøyaktighet.
  • Enkel distribusjon – akkurat som alle andre Composer-pakker!
  Hvordan laste opp filer til Microsoft Teams

Du kan sjekke ut motorytelsen her og se selv hvor rask og nøyaktig den er. Jeg vil understreke PHP-aspektet igjen: Hvis du opprettholder et PHP-prosjekt, vil du forbli innenfor PHP-veggene så mye som mulig (hvorfor? tenk på omskoleringskostnader). Og for slike tilfeller kommer TNTSearch med et verdiforslag som er vanskelig å avslå!

Vespa

Vespa er et bredt og tungt tilbud. Som et par andre oppføringer på denne listen, er den for stor til å kunne fanges opp med noen få ord. Men jeg må prøve, så det gjør jeg. 🙂 Vespa er en søkemotor, selvfølgelig, men å bruke den som en vanlig søkemotor vil kaste bort potensialet.

Vespa ble bygget for å håndtere uendelige mengder data (Big Data) og gi maskinlæringsdrevne funksjoner og endeløs tilpasning på toppen av det.

Vespa posisjonerer seg som en konkurrent til Elasticsearch og tradisjonelle databaser og gir en grei sammenligning av hva du skal bruke og når.

Som du kan se, jo nærmere du ønsker du kommer maskinlæringsdrevne operasjoner, jo mer fornuftig gir Vespa. Som en ren søkemotor for små til mellomstore bedrifter, tror jeg ikke den har noen fordeler fremfor andre alternativer.

Nå, med tanke på at du genererer enorme mengder data kontinuerlig og ønsker å gjøre beslutningsprosessen bedre gjennom AI/ML (en beskrivelse som passer mange SaaS-bedrifter i dag), er det her hvorfor Vespa gir mye mening:

  • Åpen kildekode: Ingen rare lisenser og ingen fangstkontrakter. Og ingenting å betale på toppen av det, selv om jeg alltid understreker at selskaper betaler en vanlig sum til prosjektene de bruker mest (selv $50/måned vil hjelpe dem mye).
  • Sanntid: Vespa er virkelig sanntid. Den kan ikke bare fordøye, knuse og søke etter data når den kommer inn; selv konfigurasjonen kan endres umiddelbart.
  • Skalerbar og tolerant: Vespa er triviell å skalere. Den reagerer også veldig bra på plutselig forsvinning av noder, og gir høy pålitelighet.
  • Rangering og anbefalinger: Søk, rangering og Vespa-anbefalinger kan kombineres med strukturerte søk for å levere virkelig nøyaktige resultater.
  • Smertefri AI/ML: Vespa kommer sammen med forhåndstrente ML-modeller av høy kvalitet. Du trenger ikke ansette 20 dataforskere for å rense og bruke dataene dine.
  • Egendefinerte plugins: Det er et komplett sett med API-er som hjelper utviklere med å lage tilpassede Java-plugins, hvis de trenger å endre hvordan motoren fungerer.

Vespa er massiv, uten tvil, så det er klart for team som er litt utenfor startnivået – enten det er lagstørrelse, teknisk dyktighet, infrastrukturbudsjetter, daglige datavolumer eller noe annet. For dette segmentet vil Vespa slå et hjem og anbefales på det sterkeste.

Ambar

For noen virksomheter er søkedata ikke pent transformert og lagret som JSON-dokumenter allerede; snarere, det er et rot i ordets rette forstand – en kaotisk samling av alle slags dokumenter som Word, PDF, HTML-filer, osv. Hvis du er en av dem og trodde det ikke er noe håp for deg, vel, si hei til Ambar!

Det beste med Ambar er den store typen filer den kan fungere med:

  • MS Office-filformater (.docx, .xlsx, etc.), inkludert PowerPoint, Visio og Publisher!
  • OpenOffice-filformater
  • PDF-dokumenter med automatisk OCR brukt for å trekke ut informasjon.
  • Bilder
  • E-postarkivformater som PST (hei, Outlook-brukere!)
  • E-postmeldinger med vedlegg

Godsakene slutter ikke her heller. Ambar er i stand til å jobbe med store filer (over 30 MB), ZIP-arkiver og multithreading for full CPU-utnyttelse og raskere resultater. Så hvis du har mange års dokumenter liggende på en disk på en glemt server, er det på tide å bringe det tilbake og mate alt til Ambar!

Konklusjon

Søk 🔎 er kraftig, søk er magi, og søk er overalt!

Det kan til og med være svart magi, men i dag er det ingen grunn til at alle (med litt utviklerhjelp, selvfølgelig) ikke kan høste fordelene. Fra bedrifter til enkeltpersoner til myndigheter gir søkemotorene i denne listen et tilbud med nesten null innsats med eksponentielle fordeler og effekt.

Gå videre og skaff deg en skyserver og installer søkeprogramvaren ovenfor du liker å oppleve.