8 Potente motore di ricerca self-hosted 🔍 Software per il tuo prodotto

0 Condivisioni

Sembra scoraggiante, ma aggiungere una potente funzione di ricerca alla tua applicazione non è né complesso né dispendioso in termini di tempo. Ecco alcuni solidi consigli!

Mentre molte tecnologie hanno impressionato negli ultimi 2-3 decenni, una ricerca è tra le pochissime che sono diventate parte integrante delle nostre vite. È ovunque – siti di e-commerce, blog, basi di conoscenza e altro ancora – non perché una casella di ricerca e un’icona sembrino interessanti, ma perché fa qualcosa di cui è disperatamente necessario.

Se sei un’azienda alla ricerca di una buona soluzione di ricerca o sei stanco di quella esistente, cosa fai?

Per fortuna, non è necessario pagare costi di licenza ridicoli, né è necessario mantenere un team di 20 sviluppatori e amministratori di sistema. Oggi ho alcuni consigli sui motori di ricerca che possono essere installati e integrati in pochissimo tempo, soprattutto da piccole imprese con team di sviluppatori di dimensioni 1-2.

MeiliCerca

Uno dei motori di ricerca migliori e di alto valore che incontrerai è MeiliSearch.

Quindi, cosa mi fa elencare MeiliSearch tra i miei migliori consigli?

Ecco qui.

Open Source

Tutto il codice sorgente che alimenta MeiliSearch è disponibile in open su GitHub. Ciò significa che gli sviluppatori possono esaminare da soli qualsiasi parte del codice. In cambio, le aziende possono essere sicure della qualità e dell’intento (nessun backdoor o scanner nel programma, ad esempio). E, naturalmente, sviluppatori esperti possono aiutare a migliorare ulteriormente la tecnologia.

Ottima UX

MeiliSearch non ha regole complesse (come “a – b” significa a ma non b). Digita la tua ricerca in modo naturale e i risultati inizieranno a essere visualizzati in modo fluido. Il motore è altamente tollerante e accomodante, fornendo risultati accurati anche quando vengono utilizzati errori di battitura o sinonimi. Supporta anche più lingue.

Ottimo DevEx

Gli sviluppatori adoreranno MeiliSearch! Non è solo personalizzabile e scalabile, ma si interfaccia come un’API REST! Anche la documentazione è eccellente e completa. Sebbene effettuare chiamate HTTP sia banale in qualsiasi lingua, vengono forniti esempi di cinque linguaggi (JavaScript, Ruby, Python, Golang e PHP) per chi ha fretta.

Le soluzioni di ricerca semplici dovrebbero essere semplici da usare e configurare. In quanto tale, MeiliSearch seleziona tutte le caselle! Quando sei felice di procedere, avvialo su DigitalOcean con un clic.

Solr

Solr, parte del Progetto Apache, è in circolazione da alcuni anni. È basato sulla nota e altamente affidabile libreria Lucene, che alimenta anche la popolare soluzione di ricerca denominata ElasticSearch. Tutto questo mumbo-jumbo significa che Solr è tra le soluzioni di ricerca più potenti, scalabili, conformi agli standard, ricche di funzionalità e affidabili.

È usato da colossi come Disney, eBay, Netflix, Zappos e BestBuy. Tuttavia, ciò non significa che non è possibile eseguire un’installazione più piccola e più semplice (ad esempio, macchina singola, nessun ridimensionamento, nessun failover – beh, a volte va bene) e utilizzare questa centrale elettrica chiamata Solr.

Allora, perché usare Solr?

Ecco alcuni ottimi motivi.

Preciso e potente

Solr è uno dei sistemi di ricerca più accurati, capaci e potenti al mondo. Inoltre, è open-source, il che spiega perché i grandi nomi (come accennato in precedenza) si sono diretti verso di esso. La sua capacità di digerire documenti e rispondere alle query di ricerca non è seconda a nessuno.

Installazione e manutenzione semplici

Installare Solr è semplice come decomprimere ed eseguire il programma. Per sistemi semplici a macchina singola, non è richiesta alcuna manutenzione complicata; tieni d’occhio l’utilizzo della RAM, poiché le soluzioni di ricerca in generale e le tecnologie basate su Java in particolare possono essere piuttosto affamate di RAM (perché conservano o cercano di mantenere tutto nella RAM per fornire letture/scritture veloci).

Pannello di Amministrazione

Solr viene fornito con un pannello di amministrazione che consente il monitoraggio e la configurazione visivi. Con una piccola quantità di formazione, anche i non sviluppatori possono imparare a leggere i grafici chiave. Non molte soluzioni di ricerca in questo elenco sono dotate di funzionalità come questa.

Fonte immagine: sito ufficiale

Basato su API, conforme agli standard

Solr fornisce un’interfaccia dei risultati in un’API in grado di gestire più formati: JSON, CSV, XML e binario. Emette dati di monitoraggio secondo lo standard JMX, un enorme vantaggio per gli sviluppatori Java.

C’è molto altro da dire a favore di Solr, ma cercare di coprire tutto ci porterà alla fine dei tempi. 😂 Basti dire che Solr è una soluzione di prim’ordine e non puoi mai sbagliare, indipendentemente dal tipo di dati con cui lavori.

Ricerca elastica

Elasticsearch è stato, e probabilmente è ancora, un pioniere nella ricerca di testo in formato libero. Infatti, anche oggi, se chiedi a un programmatore o un amministratore di sistema una raccomandazione sui motori di ricerca, è molto probabile che Elasticsearch sia l’unico nome che verrà loro in mente. Certo, al giorno d’oggi, una grossa fetta consiglierà anche qualcosa come Algolia, ma abbiamo già spiegato come funziona. 🤪

Non lasciarti ingannare dal pulsante “Inizia prova gratuita” nel grafico sopra. Sebbene la stessa tecnologia di base di Elasticsearch sia open source e gratuita, l’azienda sta cercando di monetizzare i propri sforzi e puntare alle imprese. Quindi, quello che vedi qui è in realtà la versione di prova per il loro servizio cloud, che semplifica la gestione di Elasticsearch, soprattutto quando sono coinvolti cluster.

Uff, tante ragnatele da districare. Ricapitoliamo: Elasticsearch è open source e gratuito e chiunque può configurarlo facilmente e utilizzarlo senza limiti.

E ora, come previsto, immergiamoci nei motivi per cui scegliere Elasticsearch:

  • Motore di ricerca maturo e collaudato. Ciò significa che è molto più probabile che tu trovi soluzioni se sei bloccato con bug “strani”.
  • Focus di prima classe su clustering, scalabilità e scritture asincrone.
  • Accessibile tramite una semplice API REST (che è ciò che tutti gli altri hanno finito per copiare).
  • Orientato al documento ma supporta lo schema se necessario.
  • Risultati incredibilmente veloci e precisi. Velocità di ricerca configurabile.
  • Documentazione stellare, nella quantità oltre che nell’utilità.
  • Una piattaforma cloud completa di ricerca e analisi (lo stack ELK), se hai voglia di pagare per la comodità.

L’unico nit-pick che avrei contro Elasticsearch è l’enorme consumo di RAM. Voglio dire, come consulenti, è già abbastanza difficile convincere i clienti a investire in un server che costa $ 20 al mese, che purtroppo non è affatto vicino a ciò che Elasticsearch richiede.

Se sei curioso di imparare Elasticsearch, dai un’occhiata a questo corso Udemy.

Tipologia

Typesense è un motore di ricerca leggero, semplice ma potente. Chi cerca utilità e semplicità dovrebbe assolutamente provare questo.

Una delle cose migliori di Typesense è che puoi provarlo direttamente sul loro sito web. Ciò può far risparmiare frustrazione e tempo nei casi in cui imposti tutto e provi l’API. . . solo per scoprire che una o più funzioni non funzionano come avresti voluto.

Questo non vuol dire che potrebbero esserci bug nel motore; è solo che l’interpretazione del motore di qualcosa potrebbe non essere la tua preferenza o potrebbe essere completamente in conflitto con il tuo dominio aziendale. Errori di battitura, simboli speciali, sinonimi e altro . . . puoi controllare i risultati che il motore lancia direttamente sulla home page (per questo stanno usando un database di libri).

Come puoi vedere, questa sezione è proprio sotto quella più in alto. Nella casella di ricerca, ho inserito la query “tra” e sotto vedo i risultati corrispondenti dal database dei libri (oltre ai metadati: risultati totali, pagina corrente, ecc.).

Typesense ha molto da offrire quando si tratta di un motore di ricerca preferito:

  • La tecnologia alla base è completamente open source e accogliente.
  • Facile da configurare una configurazione HA (High Availability), se ne hai bisogno.
  • Tollerante quando si tratta di errori di battitura e altri rumori nelle query di ricerca.
  • Un sistema di filtraggio avanzato per coloro che necessitano di un controllo dettagliato dei risultati della ricerca.
  • Semplice API REST, anche se i loro documenti ti faranno lavorare molto duramente per trovarlo!
  • I client (SDK) sono disponibili per alcuni dei principali linguaggi (JavaScript, Python, Ruby e PHP).

Infine, se trovi stancante l’idea di configurare nuovi server, Typesense ha anche un’offerta cloud in cui il provisioning richiede un solo clic. La fatturazione è a ore e le letture e le scritture sono illimitate. Francamente, dirò che questa è l’opzione migliore per la maggior parte delle aziende, a condizione che abbiano elaborato i prezzi in anticipo e si siano assicurati che sia un guadagno netto.

Tutto sommato, Typesense ha molto senso (nessun gioco di parole!) Se hai bisogno di qualcosa di piccolo, agile, preciso e un vero cavallo di battaglia.

Sonico

Sonic è orgoglioso di essere un’alternativa ElasticSaerch che funziona con “pochi MB di RAM”.

Com’è possibile?

Ebbene, la Java Virtual Machine (JVM) è nota per essere affamata di RAM (in genere, il solo avvio della JVM consuma circa 1 GB di RAM); non sorprende, quindi, che qualcosa codificato nel linguaggio Rust (che fornisce il controllo completo e la sicurezza della memoria per gli sviluppatori) possa funzionare altrettanto velocemente e utilizzare solo pochi MB di RAM.

Rilassatevi, tutti! Questa è solo la mascotte del progetto.

Al momento della scrittura, ci sono un paio di aziende elencate tra i suoi utenti, anche se sono sicuro che ce ne sono altre che non si sono preoccupate di aggiungere i loro nomi. Non ricordo come o il lasso di tempo esatto, ma mi sono imbattuto in Sonic prima; a quel tempo, mentre ero felice di vedere un’alternativa con memoria insufficiente, pensavo che avrebbe avuto bisogno di tempo per stabilizzare e appianare i bug nascosti. Bene, sembra che siano più o meno arrivati; quanto diverrà popolare Sonic è qualcosa che solo il tempo lo dirà.

Ok, a parte le lunghe riflessioni, perché dovresti considerare l’utilizzo di Sonic per la tua organizzazione/progetto?

Ecco alcuni motivi:

  • Impronta di memoria estremamente bassa, per quanto riguarda i motori di ricerca.
  • Le librerie sono disponibili per tutti i principali linguaggi di programmazione. Node, PHP e Rust sono ciò che gli autori stessi hanno rilasciato, mentre altri sono stati creati dalla comunità (rallegrati, perché anche l’esotico rigido come Elixir e Nim è coperto!).
  • Sono supportate diverse lingue (era troppo da contare, ma penso che al momento della scrittura siano supportate 40-50 lingue).
  • Una sorpresa! Puoi persino usare nuove lingue e il motore funzionerà (😂😂), anche se perderai alcune funzioni avanzate come le parole interrotte.
  • Motore molto veloce. Se dai un’occhiata alla loro pagina GitHub, vedrai che i tempi di importazione e ricerca erano in microsecondi in diversi casi! Ovviamente, questo è stato un test su una singola macchina, poiché la latenza di rete non consentirà mai che i numeri siano così bassi.

Se vuoi vedere questo motore in azione, vai a questo link (una delle loro aziende utenti) e gioca con la casella di ricerca che vedi lì:

Ci sono alcune limitazioni a Sonic come motore di ricerca. Gli sviluppatori li hanno evidenziati e discussi apertamente sulla loro pagina GitHub. Il mio consiglio sarebbe di esaminare da vicino questo elenco e stabilire che i tuoi casi d’uso non sono in comune con il loro dominio. Detto questo, tutto ha dei limiti; è solo che sono tenuti nascosti, e quindi non ce ne rendiamo conto finché non è troppo tardi. Pertanto, considero Sonic un’ottima scelta per un motore di ricerca.

TNTCerca

Ora abbiamo una voce affascinante in questo elenco. La prima cosa interessante è che questo motore di ricerca completo di funzionalità e pronto per la produzione è stato scritto in PHP!

Sì, tra tutte le lingue possibili, PHP. E lo dico non perché odio PHP, ma perché è un processo di breve durata in base alla progettazione.

La seconda cosa interessante è la loro licenza, almeno al momento della scrittura. In realtà, la licenza stessa è MIT, quindi non ci sono problemi lì, ma gli autori classificano questo software come PS4Ware; se usi TNTSearch in produzione, dovresti inviare loro un gioco per PS4! 😂😂 Ora, non è obbligatorio, come indica il “dovrebbe”, ma è divertente oltre ogni immaginazione. Spero anche che lo aggiornino a una licenza PS5, anche se è troppo presto in questo momento.

Comunque, provenendo anch’io da un forte background PHP + Laravel, apprezzo molto gli sforzi di questi ragazzi. Il loro sito web non dice molto ma sembra indicare che sono consulenti, quindi ti consiglio vivamente di contattarli se hai dei progetti!

Ora, ci sono delle buone ragioni per usare TNTSearch nei tuoi progetti?

Si ci sono:

  • Codificato in PHP, per PHP, da PHP. L’ecosistema PHP ha bisogno di soluzioni più dedicate e di alta qualità come questa.
  • Funzionalità importanti come la ricerca fuzzy, la ricerca geografica e la classificazione del testo.
  • Facile cambiare l’indice di ricerca, che è una grande flessibilità che manca a molte soluzioni.
  • Stemming, ranking BM25 e tokenizzazione personalizzata garantiscono un’elevata precisione.
  • Facile implementazione, proprio come qualsiasi altro pacchetto Composer!

Puoi controllare le prestazioni del motore qui e vedere di persona quanto è veloce e preciso. Sottolineo ancora l’aspetto PHP: se stai mantenendo un progetto PHP, vuoi rimanere il più possibile all’interno delle mura di PHP (perché? pensare ai costi di riqualificazione). E per questi casi, TNTSearch porta una proposta di valore difficile da rifiutare!

Vespa

Vespa è un’offerta ampia e pesante. Come un paio di altre voci in questo elenco, è troppo grande per essere catturato in poche parole. Ma devo provare, quindi lo farò. 🙂 Vespa è un motore di ricerca, certo, ma utilizzarlo come un normale motore di ricerca ne spreca il potenziale.

Vespa è stata progettata per gestire quantità infinite di dati (Big Data) e fornire funzionalità basate sull’apprendimento automatico e personalizzazione infinita.

Vespa si posiziona come un concorrente di Elasticsearch e dei database tradizionali e fornisce un confronto decente su cosa usare e quando.

Come puoi vedere, più ti avvicini alle operazioni basate sull’apprendimento automatico, più senso ha Vespa. Essendo un puro motore di ricerca per un’impresa di livello medio-piccolo, non credo che abbia alcun vantaggio rispetto ad altre opzioni.

Ora, considerando che stai generando grandi quantità di dati continuamente e vuoi prendere decisioni migliori tramite AI/ML (una descrizione che si adatta a molte aziende SaaS oggi), ecco perché Vespa ha molto senso:

  • Open source: nessuna licenza strana e nessun contratto di trapping. E niente da pagare per di più, anche se sottolineo sempre che le aziende pagano una somma regolare ai progetti che utilizzano di più (anche $ 50 al mese le aiuteranno molto).
  • In tempo reale: Vespa è davvero in tempo reale. Non può solo digerire, sgranocchiare e cercare i dati non appena arrivano; anche la sua configurazione può essere modificata al volo.
  • Scalabile e tollerante: Vespa è banale in scala. Risponde molto bene anche all’improvvisa scomparsa dei nodi, fornendo un’elevata affidabilità.
  • Classifica e consigli: la ricerca, la classifica e i consigli Vespa possono essere fusi con query strutturate per fornire risultati veramente accurati.
  • AI/ML indolore: Vespa viene fornita in bundle con modelli ML pre-addestrati di alta qualità. Non è necessario assumere 20 data scientist per pulire e utilizzare i tuoi dati.
  • Plugin personalizzati: esiste un set completo di API che aiuta gli sviluppatori a creare plug-in Java personalizzati, nel caso avessero bisogno di modificare il funzionamento del motore.

Vespa è enorme, senza dubbio, quindi è chiaro per i team che sono un po’ oltre il livello di partenza, che si tratti di dimensioni del team, abilità tecnologica, budget delle infrastrutture, volumi di dati giornalieri o qualcos’altro. Per questo segmento, Vespa farà un fuoricampo ed è altamente raccomandato.

Ambar

Per alcune aziende, i dati di ricerca non vengono trasformati in modo ordinato e archiviati già come documenti JSON; piuttosto, è un pasticcio nel vero senso della parola: una raccolta caotica di tutti i tipi di documenti come file Word, PDF, HTML, ecc. Se sei uno di loro e pensi che non ci sia speranza per te, beh, dì ciao ad Ambar!

La cosa migliore di Ambar è il tipo di file di grandi dimensioni con cui può funzionare:

  • Formati di file MS Office (.docx, .xlsx, ecc.), inclusi PowerPoint, Visio e Publisher!
  • Formati di file OpenOffice
  • Documenti PDF con OCR automatico applicato per estrarre informazioni.
  • immagini
  • Formati di archivio di posta elettronica come PST (ciao, utenti di Outlook!)
  • Messaggi di posta elettronica con allegati

Anche le chicche non finiscono qui. Ambar è in grado di lavorare con file di grandi dimensioni (oltre 30 MB), archivi ZIP e multithreading per un utilizzo completo della CPU e risultati più rapidi. Quindi, se hai anni di documenti che giacciono su un disco su un server dimenticato, è il momento di riportarlo indietro e inviare tutto ad Ambar!

Conclusione

La ricerca 🔎 è potente, la ricerca è magica e la ricerca è ovunque!

Potrebbe anche essere magia nera, ma oggi non c’è motivo per cui tutti (con l’aiuto degli sviluppatori, ovviamente) non possano trarne vantaggio. Dalle aziende ai privati ​​fino ai governi, i motori di ricerca in questo elenco forniscono un’offerta a sforzo quasi zero con vantaggi e impatto esponenziali.

Vai avanti e prendi un server cloud e installa il software di ricerca sopra elencato che ti piace provare.

x