Kraftfulle søkemotorer: 8 selvhostede alternativer for din app

Det kan virke overveldende, men å implementere en effektiv søkefunksjon i applikasjonen din behøver verken være komplisert eller tidkrevende. Her følger noen solide anbefalinger!

I løpet av de siste to til tre tiårene har mange teknologier imponert, men søk er blant de få som virkelig har blitt en integrert del av hverdagen vår. Det er allestedsnærværende – på e-handelssider, i blogger, kunnskapsbaser og mer. Dette er ikke bare fordi en søkeboks og et ikon ser stilig ut, men fordi de oppfyller et presserende behov.

Dersom din bedrift er på utkikk etter en god søkeløsning, eller er misfornøyd med den dere har, hva er da neste skritt?

Heldigvis er det ikke nødvendig å betale skyhøye lisensavgifter, og du trenger heller ikke et team på 20 utviklere og systemadministratorer for å vedlikeholde systemet. I dag vil jeg presentere noen søkemotoranbefalinger som kan installeres og integreres raskt, spesielt for mindre bedrifter med et utviklerteam på en eller to personer.

MeiliSearch

En av de mest verdifulle og utmerkede søkemotorene du kan finne er MeiliSearch.

Hva gjør at jeg anbefaler MeiliSearch så sterkt?

Her er noen av grunnene:

Åpen kildekode

All kildekode for MeiliSearch er åpent tilgjengelig på GitHub. Dette gir utviklere mulighet til å inspisere alle deler av koden. Bedrifter kan derfor være trygge på kvaliteten og intensjonen (fravær av bakdører eller skannere). Dyktige utviklere kan også bidra til å forbedre teknologien ytterligere.

Fremragende brukeropplevelse

MeiliSearch har ikke komplekse regler (som at «a – b» betyr a, men ikke b). Du kan skrive inn søket på en naturlig måte, og resultatene vil vises umiddelbart. Motoren er svært tolerant og fleksibel, og gir nøyaktige resultater selv med skrivefeil eller synonymer. Den har også støtte for flere språk.

Utmerket utvikleropplevelse

Utviklere vil sette pris på MeiliSearch! Den er ikke bare tilpassbar og skalerbar, men har også et grensesnitt som et REST API! Dokumentasjonen er også førsteklasses og grundig. Selv om det er enkelt å foreta HTTP-kall i alle språk, er det eksempler i fem språk (JavaScript, Ruby, Python, Golang og PHP) for de som har det travelt.

Enkle søkeløsninger skal være brukervennlige og lette å sette opp. MeiliSearch oppfyller alle disse kravene! Når du er klar til å fortsette, kan du enkelt starte opp på DigitalOcean med et enkelt klikk.

Solr

Solr, som er en del av Apache-prosjektet, har eksistert en god stund. Den er bygget på det anerkjente og pålitelige Lucene-biblioteket, som også driver den populære søkeløsningen Elasticsearch. Alt dette betyr at Solr er en av de kraftigste, mest skalerbare, standardkompatible, funksjonsrike og pålitelige søkeløsningene på markedet.

Solr brukes av store selskaper som Disney, eBay, Netflix, Zappos og BestBuy. Det betyr ikke at du ikke kan bruke en mindre installasjon (f.eks. en enkelt server, uten skalering, ingen failover). Selv da kan du dra nytte av denne kraftige løsningen som heter Solr.

Så hvorfor bør du velge Solr?

Her er noen gode grunner:

Nøyaktig og kraftfull

Solr er blant de mest nøyaktige, kompetente og kraftige søkesystemene i verden. I tillegg er den åpen kildekode, noe som forklarer hvorfor store aktører (som nevnt tidligere) har valgt den. Dens evne til å behandle dokumenter og svare på søk er uovertruffen.

Enkel installasjon og vedlikehold

Å installere Solr er like enkelt som å pakke ut og kjøre programmet. For enkle systemer med en server kreves det minimalt med vedlikehold. Det er viktig å overvåke RAM-bruken, ettersom søkeløsninger generelt, og Java-baserte teknologier spesielt, kan være krevende når det gjelder RAM-ressurser (fordi de holder data i minnet for raskere lese-/skrivehastighet).

Administrasjonspanel

Solr har et administrasjonspanel som gir visuell overvåking og konfigurasjonsmuligheter. Med litt opplæring kan selv ikke-utviklere lære å forstå de viktigste grafene og diagrammene. Ikke mange søkeløsninger på denne listen har en slik funksjonalitet.

Bildekilde: Offisiell side

API-drevet og standardkompatibel

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

Det er mye mer å si om Solr, men å dekke alt ville tatt altfor lang tid. 😂 Det er tilstrekkelig å si at Solr er en førsteklasses løsning, og du kan ikke gjøre feil ved å velge den, uavhengig av hva slags data du arbeider med.

Elasticsearch

Elasticsearch var, og er uten tvil fortsatt, en pioner innen fritekstsøk. Faktisk, selv i dag, om du spør en programmerer eller systemadministrator om søkemotoranbefalinger, vil Elasticsearch mest sannsynlig være det første navnet de nevner. Riktignok vil noen i dag også anbefale Algolia, men vi har allerede diskutert utviklingen rundt dette. 🤪

La deg ikke lure av knappen «Start gratis prøveperiode» i grafikken over. Selv om kjerneteknologien i Elasticsearch er åpen kildekode og gratis, forsøker selskapet å tjene penger på innsatsen og retter seg mot bedrifter. Det du ser her, er faktisk prøveversjonen av deres skytjeneste, som forenkler administrasjonen av Elasticsearch, spesielt ved bruk av klynger.

Uff, det er mange ting å ta hensyn til. La oss oppsummere: Elasticsearch er åpen kildekode og gratis, og alle kan installere og bruke det uten begrensninger.

Og nå, som forventet, la oss se nærmere på grunnene til å velge Elasticsearch:

  • En moden og velprøvd søkemotor. Dette betyr at det er mer sannsynlig at du finner løsninger hvis du støter på «rare» feil.
  • Sterkt fokus på klynger, skalerbarhet og asynkron skriving.
  • Tilgjengelig via et enkelt REST API (som alle andre har endt opp med å kopiere).
  • Dokumentorientert, men støtter skjemaer om nødvendig.
  • Utrolig raske og nøyaktige resultater. Konfigurerbar søkehastighet.
  • Førsteklasses dokumentasjon, både i omfang og nytte.
  • En komplett skyplattform for søk og analyse (ELK-stakken), hvis du ønsker å betale for bekvemmeligheten.

Den eneste innvendingen jeg har mot Elasticsearch er dens høye RAM-forbruk. Som konsulenter er det vanskelig nok å overtale klienter til å investere i en server som koster $20 i måneden, noe som dessverre ikke er i nærheten av det Elasticsearch krever.

Hvis du er interessert i å lære mer om Elasticsearch, kan du sjekke ut dette Udemy-kurset.

Typesense

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

Noe av det beste med Typesense er at du kan teste det direkte på nettsiden deres. Dette kan spare deg for frustrasjon og tid, i de tilfellene hvor du setter opp alt og tester APIet, bare for å oppdage at en eller flere funksjoner ikke fungerer som forventet.

Det betyr ikke at det er feil i selve motoren, men det kan hende at motorens oppfatning av noe ikke stemmer overens med dine preferanser, eller at det er i konflikt med ditt forretningsområde. Skrivefeil, spesielle symboler, synonymer og mer… Du kan sjekke resultatene motoren gir direkte på hjemmesiden (de bruker en bokdatabase for dette).

Som du ser, er denne seksjonen rett under toppdelen. I søkeboksen har jeg skrevet inn «tra», og nedenfor ser jeg matchende resultater fra bokdatabasen (samt metadata – totale resultater, gjeldende side osv.).

Typesense har mye å tilby når det kommer til søkemotorfunksjoner:

  • Teknologien bak er fullstendig åpen kildekode og tilgjengelig.
  • Enkelt å sette opp et HA-oppsett (høy tilgjengelighet) om det skulle være nødvendig.
  • Tolerant når det kommer til skrivefeil og annen støy i søk.
  • Et avansert filtreringssystem for de som trenger detaljert kontroll over søkeresultatene.
  • Enkelt REST API, selv om dokumentasjonen deres krever at du gjør en ekstra innsats for å finne det.
  • Klienter (SDK-er) er tilgjengelige for noen av de viktigste språkene (JavaScript, Python, Ruby og PHP).

Til slutt, hvis du ikke liker tanken på å sette opp nye servere, tilbyr Typesense også en skytjeneste der klargjøring skjer med et enkelt klikk. Fakturering skjer per time, og det er ubegrenset lese- og skrivekapasitet. Jeg vil faktisk hevde at dette er det beste alternativet for de fleste bedrifter, så lenge de har vurdert prisene på forhånd og forsikret seg om at det gir en positiv avkastning.

Alt i alt gir Typesense god mening hvis du trenger en søkeløsning som er liten, smidig, presis og en ekte arbeidshest.

Sonic

Sonic fremhever seg som et Elasticsearch-alternativ som krever «noen få MB RAM».

Hvordan er dette mulig?

Vel, Java Virtual Machine (JVM) er kjent for å være krevende når det gjelder RAM-bruk (vanligvis spiser bare oppstart av JVM ca. 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.

Bare ta det med ro! Dette er bare prosjektmaskoten.

I skrivende stund er det noen få selskaper som er oppført som brukere, men jeg er sikker på at det er flere som ikke har tatt seg bryet med å legge til navnene sine. Jeg husker ikke nøyaktig hvordan eller når, men jeg har vært borti Sonic før. Den gang var jeg glad for å se et alternativ med lavt minneforbruk, men jeg tenkte at det ville ta tid å stabilisere og fjerne skjulte feil. Nå ser det ut til at de har kommet langt. Hvor populær Sonic vil bli, vil tiden vise.

Ok, nok om det. Hvorfor bør du vurdere å bruke Sonic for din organisasjon/prosjekt?

Her er noen grunner:

  • Ekstremt lavt minneforbruk sammenlignet med andre søkemotorer.
  • Biblioteker er tilgjengelige for alle de viktigste programmeringsspråkene. Forfatterne har selv publisert biblioteker for Node, PHP og Rust, mens andre er skapt av fellesskapet (blant annet Elixir og Nim!).
  • Støtte for flere språk (det var for mange å telle, men jeg tror det er støtte for 40–50 språk i skrivende stund).
  • En overraskelse! Du kan til og med bruke nye språk, og motoren vil fungere (😂😂), selv om du mister noen avanserte funksjoner som stoppord.
  • Svært rask motor. Hvis du sjekker GitHub-siden deres, vil du se at inntaks- og søketidene var nede i mikrosekunder i flere tilfeller! Dette var selvfølgelig en test med en enkelt maskin, ettersom nettverksforsinkelse aldri vil tillate at tallene er så lave.

Hvis du vil se denne motoren i aksjon, kan du gå til denne lenken (en av bedriftene som bruker den) og leke med søkeboksen:

Det er noen begrensninger med Sonic som søkemotor. Utviklerne har åpent diskutert disse på GitHub-siden deres. Mitt råd er å undersøke denne listen nøye og forsikre deg om at bruksområdene dine ikke overlapper begrensningene deres. Når det er sagt, har alt begrensninger. Det er bare at de ofte holdes skjult, og vi oppdager dem ikke før det er for sent. Derfor anser jeg Sonic som et godt valg for en søkemotor.

TNTSearch

Vi har nå en interessant kandidat på denne listen. Det første som er interessant, er at denne funksjonsrike og produksjonsklare søkemotoren er skrevet i PHP!

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

Det andre interessante aspektet er lisensen deres, i hvert fall i skrivende stund. Selve lisensen er MIT, så det er ikke noe problem der, men forfatterne klassifiserer programvaren som PS4Ware. Hvis du bruker TNTSearch i produksjon, bør du sende dem et PS4-spill! 😂 Det er selvfølgelig ikke obligatorisk, men det er veldig morsomt. Jeg håper de oppgraderer den til en PS5-lisens, selv om det er for tidlig akkurat nå.

Uansett, som en som har lang erfaring med PHP + Laravel, setter jeg stor pris på innsatsen disse gutta har lagt ned. Nettsiden deres forteller ikke så mye, men tyder på at de er konsulenter, så jeg anbefaler at du tar kontakt med dem hvis du har prosjekter!

Finnes det gode grunner til å bruke TNTSearch i prosjektene dine?

Ja, det gjør det:

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

Du kan sjekke motorytelsen her og selv se hvor rask og nøyaktig den er. Jeg vil understreke PHP-aspektet igjen: Hvis du vedlikeholder et PHP-prosjekt, vil du gjerne holde deg innenfor PHP-rammene så mye som mulig (hvorfor? Tenk på kostnadene ved omskolering). I slike tilfeller er TNTSearch et tilbud som er vanskelig å avslå!

Vespa

Vespa er et omfattende og tungt tilbud. Som noen av de andre oppføringene på denne listen, er den for stor til å kunne beskrives med noen få ord. Men jeg må forsøke, så det gjør jeg. 🙂 Vespa er en søkemotor, selvfølgelig, men å bruke den som en vanlig søkemotor vil være å kaste bort potensialet.

Vespa er utviklet for å håndtere enorme mengder data (Big Data) og levere maskinlæringsdrevne funksjoner og endeløs tilpasning i tillegg.

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

Som du kan se, jo mer du ønsker å benytte deg av maskinlæringsdrevne operasjoner, desto mer fornuftig blir Vespa. Som en ren søkemotor for små og 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 å forbedre beslutningsprosesser ved hjelp av AI/ML (en beskrivelse som passer mange SaaS-bedrifter i dag), er det her Vespa gir stor mening:

  • Åpen kildekode: Ingen rare lisenser og ingen kontrakter med bindinger. Og ingenting å betale ekstra, selv om jeg alltid understreker at selskaper bør gi et månedlig bidrag til prosjektene de bruker mest (selv $50/måned vil hjelpe dem mye).
  • Sanntid: Vespa er virkelig sanntid. Den kan ikke bare analysere, behandle og søke etter data når de kommer inn. Selv konfigurasjonen kan endres umiddelbart.
  • Skalerbar og tolerant: Vespa er enkel å skalere. Den reagerer også veldig bra på plutselig tap 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 svært nøyaktige resultater.
  • Enkel bruk av AI/ML: Vespa leveres med forhåndstrente ML-modeller av høy kvalitet. Du trenger ikke ansette 20 dataforskere for å klargjøre og bruke dataene dine.
  • Tilpassede plugins: Det finnes et komplett sett med APIer som hjelper utviklere med å lage tilpassede Java-plugins, hvis de trenger å endre motorens funksjonalitet.

Vespa er uten tvil en stor løsning, så den passer for team som er litt utenfor startfasen – enten det gjelder teamstørrelse, teknisk kompetanse, infrastruktur, daglig datavolum eller noe annet. For dette segmentet vil Vespa være et godt valg, og den anbefales sterkt.

Ambar

For noen virksomheter er ikke søkedata pent transformert og lagret som JSON-dokumenter. I stedet er det 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 at det ikke fantes håp for deg, da er det på tide å hilse på Ambar!

Det beste med Ambar er det store utvalget av filtyper den kan arbeide 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

Godbitene stopper ikke her. 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 å hente den frem og mate alt inn i Ambar!

Konklusjon

Søk 🔎 er kraftfullt, søk er magisk, 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 dra nytte av fordelene. Fra bedrifter til enkeltpersoner til myndigheter gir søkemotorene på denne listen et tilbud med minimale anstrengelser og eksponentielle fordeler og effekt.

Kom i gang, skaff deg en skyserver, installer den søkeprogramvaren du liker best ovenfor, og opplev resultatene.