Sto usando Solr con successo da quasi 2 anni ormai e non ho mai usato Sphinx, quindi sono ovviamente di parte. Tuttavia, cercherò di mantenerlo obiettivo citando i documenti o altre persone. Prenderò anche le patch alla mia risposta :-)
Somiglianze:
- Sia Solr che Sphinx soddisfano tutte le tue esigenze. Sono veloci e progettati per indicizzare ed eseguire ricerche in grandi quantità di dati in modo efficiente.
- Entrambi hanno un lungo elenco di siti ad alto traffico che li utilizzano (Solr , Sfinge )
- Entrambi offrono supporto commerciale. (Solr , Sfinge )
- Entrambi offrono collegamenti API client per diverse piattaforme/lingue (Sphinx , Solr )
- Entrambi possono essere distribuiti per aumentare velocità e capacità (Sphinx , Solr )
Ecco alcune differenze:
- Solr, essendo un progetto Apache, ha ovviamente la licenza Apache2. Sfinge è GPLv2 . Ciò significa che se hai bisogno di incorporare o estendere (non solo "usare") Sphinx in un'applicazione commerciale, dovrai acquistare una licenza commerciale (motivazione )
- Solr è facilmente integrabile nelle applicazioni Java.
- Solr si basa su Lucene, una tecnologia collaudata su 8 anni con un enorme base di utenti (questa è solo una piccola parte). Ogni volta che Lucene ottiene una nuova funzionalità o un aumento di velocità, lo ottiene anche Solr. Molti degli sviluppatori che si impegnano in Solr sono anche committenti di Lucene.
- Sphinx si integra più strettamente con gli RDBMS, in particolare MySQL.
- Solr può essere integrato con Hadoop per creare applicazioni distribuite
- Solr può essere integrato con Nutch per creare rapidamente un motore di ricerca web con crawler .
- Solr può indicizzare formati proprietari come Microsoft Word, PDF, ecc . Sphinx non può .
- Solr viene fornito con un correttore ortografico pronto all'uso .
- Solr viene fornito con supporto per le facce pronto all'uso . La sfaccettatura in Sphinx richiede più lavoro .
- Sfinge non consente aggiornamenti parziali dell'indice per i dati del campo .
- In Sphinx, tutti gli ID dei documenti devono essere un numero intero diverso da zero senza segno numeri . Solr non richiede nemmeno una chiave univoca per molte operazioni e le chiavi univoche possono essere numeri interi o stringhe.
- Solr supporta compressione dei campi (attualmente solo come patch aggiuntiva) per evitare di duplicare risultati simili. Sphinx non sembra fornire alcuna funzionalità come questa.
- Mentre Sfinge è progettato per recuperare solo gli ID dei documenti , in Solr puoi ottenere direttamente interi documenti con praticamente qualsiasi tipo di dati, rendendolo più indipendente da qualsiasi archivio dati esterno e risparmiando il viaggio di andata e ritorno extra.
- Solr, eccetto se utilizzato incorporato, viene eseguito in un contenitore Web Java
come Tomcat o Jetty, che richiedono configurazione e ottimizzazione specifiche aggiuntive
(oppure puoi utilizzare il molo incluso
e avvialo con
java -jar start.jar
). Sphinx non ha alcuna configurazione aggiuntiva.
Domande correlate:
- Ricerca di testo completo con Rails
- Confronto del motore di ricerca full-text - Lucene, Sphinx, Postgresql, MySQL?