Solr používám úspěšně již téměř 2 roky a nikdy jsem nepoužil Sphinx, takže jsem zjevně zaujatý. Pokusím se však zachovat objektivitu citováním dokumentů nebo jiných lidí. Také si vezmu záplaty na svou odpověď :-)
Podobnosti:
- Solr i Sphinx splňují všechny vaše požadavky. Jsou rychlé a navržené tak, aby efektivně indexovaly a prohledávaly velké objemy dat.
- Oba mají dlouhý seznam webů s vysokou návštěvností, které je využívají (Solr , Sphinx )
- Oba nabízejí komerční podporu. (Solr , Sfinga )
- Oba nabízejí klientské vazby API pro několik platforem/jazyků (Sphinx , Solr )
- Obojí lze distribuovat za účelem zvýšení rychlosti a kapacity (Sphinx , Solr )
Zde jsou některé rozdíly:
- Solr je projekt Apache a má samozřejmě licenci Apache2. Sphinx je GPLv2 . To znamená, že pokud někdy budete potřebovat vložit nebo rozšířit (nejen „použít“) Sphinx v komerční aplikaci, budete si muset zakoupit komerční licenci (důvod )
- Solr je snadno vložitelný v aplikacích Java.
- Solr je postaven na Lucene, což je osvědčená technologie přes 8 let s obrovským uživatelská základna (toto je jen malá část). Kdykoli Lucene získá novou funkci nebo zrychlení, získá ji také Solr. Mnoho vývojářů, kteří se zavázali k Solru, jsou také autory Lucene.
- Sphinx se těsněji integruje s RDBMS, zejména s MySQL.
- Solr lze integrovat s Hadoopem k vytváření distribuovaných aplikací
- Solr lze integrovat s Nutch a rychle vytvořit plně- nový webový vyhledávač s prohledávačem .
- Solr může indexovat proprietární formáty jako Microsoft Word, PDF atd. . Sphinx nemůže .
- Solr je dodáván s kontrolou pravopisu přímo z krabice .
- Solr přichází s podporou fazet již po vybalení . Faceting ve Sfingě dá více práce .
- Sphinx nepovoluje částečné aktualizace indexu pro data pole .
- Ve Sphinx musí být všechna ID dokumentů jedinečná nenulová celá čísla bez znaménka čísla . Solr pro mnoho operací dokonce nevyžaduje jedinečný klíč a jedinečné klíče mohou být buď celá čísla, nebo řetězce.
- Solr podporuje sbalování pole (momentálně pouze jako dodatečná oprava), aby se předešlo duplikaci podobných výsledků. Zdá se, že Sphinx žádnou takovou funkci neposkytuje.
- Zatímco Sphinx je navržena tak, aby pouze načítala ID dokumentů , v Solr můžete přímo získat celé dokumenty s téměř libovolnými daty, díky čemuž je více nezávislý na jakémkoli externím datovém úložišti a šetří to další zpáteční cestu.
- Solr, pokud není použit vložený, běží v webovém kontejneru Java
jako je Tomcat nebo Jetty, které vyžadují další specifickou konfiguraci a ladění
(nebo můžete použít přiložené molo
a stačí jej spustit pomocí
java -jar start.jar
). Sphinx nemá žádnou další konfiguraci.
Související otázky:
- Fulltextové vyhledávání pomocí Rails
- Porovnání fulltextového vyhledávače - Lucene, Sphinx, Postgresql, MySQL?