私はSolrを2年近く使用しており、Sphinxを使用したことがないので、明らかに偏見がありますが、ドキュメントや他の人を引用して、Solrを客観的に保つようにしています。私も私の答えにパッチを取ります:-)
類似点:
- SolrとSphinxはどちらもすべての要件を満たしています。これらは高速で、大量のデータのインデックス作成と検索を効率的に行うように設計されています。
- どちらも、それらを使用しているトラフィックの多いサイトの長いリストを持っています( Solr 、スフィンクス )
- どちらも商用サポートを提供します。 ( Solr 、スフィンクス )
- どちらも、いくつかのプラットフォーム/言語用のクライアントAPIバインディングを提供しています( Sphinx 、 Solr )
- 速度と容量を増やすために両方を配布できます( Sphinx 、 Solr )
ここにいくつかの違いがあります:
- ApacheプロジェクトであるSolrは、明らかにApache2ライセンスです。 SphinxはGPLv2です 。つまり、商用アプリケーションにSphinxを埋め込んだり拡張したりする必要がある場合(「使用」するだけでなく)、商用ライセンスを購入する必要があります(根拠 )
- Solrは
簡単に埋め込むことができます Javaアプリケーションで。 - SolrはLuceneの上に構築されています。これは、8歳 巨大な ユーザーベース (これはほんの一部です)。 Luceneが新しい機能やスピードアップを取得するたびに、Solrもそれを取得します。 Solrにコミットしている開発者の多くはLuceneコミッターでもあります。
- SphinxはRDBMS、特にMySQLとより緊密に統合されています。
- Solrは
Hadoopと統合できます分散アプリケーションを構築するには - Solrは、 Nutchと統合して、完全な-クローラーを備えた本格的なWeb検索エンジン 。
- Solrは、 Microsoft Word、PDFなどの独自の形式にインデックスを付けることができます 。 Sphinx できません 。
- Solrには、スペルチェッカーが付属しています 。
- Solrには、ファセットサポートが付属しています
。 Sphinxでのファセット
より多くの作業が必要 。 - Sphinxはフィールドデータの部分的なインデックス更新を許可していません 。
- Sphinxでは、すべてのドキュメントIDは一意の符号なし非ゼロ整数である必要があります数字 。 Solr 多くの操作に一意のキーさえ必要ありません 、および一意キーは整数または文字列のいずれかです。
- Solrは
フィールド折りたたみ をサポートしています (現在は追加パッチとしてのみ)同様の結果の重複を避けるため。 Sphinxはこのような機能を提供していないようです。 - SphinxはドキュメントIDのみを取得するように設計されています 、Solrでは、ほぼすべての種類のデータを含むドキュメント全体を直接取得できるため、外部データストアからの独立性が高まり、余分なラウンドトリップが節約されます。
- Solrは、埋め込まれて使用される場合を除き、JavaWebコンテナー
で実行されます。 TomcatやJettyなど、追加の特定の構成と調整
が必要です。 (または、付属のJetty
を使用できます。
java -jar start.jar
で起動するだけです )。 Sphinxには追加の構成はありません。
関連する質問: