web-dev-qa-db-ja.com

スタンドアロンの全文検索サーバーの選択:SphinxまたはSOLR?

次のプロパティを持つスタンドアロンの全文検索サーバーを探しています。

  • 複数のクライアントからの検索要求を処理できるスタンドアロンサーバーとして動作する必要があります
  • SQLクエリの結果にインデックスを付けることで「バルクインデックス」を実行できる必要があります。「SELECT id、text_to_index FROM documents;」と言います。
  • フリーソフトウェアであり、データベースとしてMySQLを使用するLinuxで実行する必要があります
  • 高速でなければなりません(MySQLの内部全文検索を除外します)

これらのプロパティがあることがわかった代替策は次のとおりです。

  • Solr(Luceneに基づく)
  • ElasticSearch(Luceneにも基づく)
  • スフィンクス

私の質問:

  • 彼らはどのように比較しますか?
  • 他の選択肢を見逃していませんか?
  • 私はそれぞれのユースケースが異なることを知っていますが、特定のパッケージを使用したい場合は間違いなくnotが必要な場合がありますか?
192
knorv

私はほぼ2年間Solrを正常に使用してきましたが、Sphinxを使用したことがないため、明らかに偏見があります。ただし、ドキュメントまたは他の人を引用して、客観性を維持しようとします。また、答えにパッチを適用します:-)

類似点:

  • SolrとSphinxは両方とも、すべての要件を満たしています。これらは高速で、大量のデータを効率的にインデックス付けおよび検索するように設計されています。
  • どちらにも、それらを使用するトラフィックの多いサイトの長いリストがあります( SolrSphinx
  • どちらも商用サポートを提供します。 ( SolrSphinx
  • 両方とも、いくつかのプラットフォーム/言語( SphinxSolr )にクライアントAPIバインディングを提供します
  • どちらも速度と容量を増やすために分散できます( SphinxSolr

いくつかの違いがあります:

関連する質問:

324

独自の方法で検索機能を拡張する必要がない限り、Sphinxが最善の策です。

スフィンクスの利点:

  1. 開発とセットアップが高速化
  2. はるかに優れた(そして高速な)集約。これは私たちにとってキラーな機能でした。
  3. XMLではありません。これが最終的にSolrを排除したものです。 Solrの集計が不足していたため、かなり大きな結果セットを返して(数百の結果を考えて)自分で集計する必要がありました。 XMLとの間でシリアル化する時間は、パフォーマンスを完全に低下させました。ただし、結果セットが小さい場合は、まったく問題ありませんでした。
  4. オープンソースアプリで見た最高のドキュメント

Solrの利点:

  1. 拡張できます。
  2. Webアプリから直接ヒットすることができます。つまり、オートコンプリートのような検索をAJAX経由で直接Solrサーバーにヒットさせることができます。
47
larf311

注:同じ質問を念頭に置いた多くのユーザーがいます。

だから、ポイントに答えるために:

これはなぜですか?

  • Webアプリ(サイト検索エンジン)で使用する場合は、Solrを使用します。 APIのおかげで、間違いなく素晴らしいものになるでしょう。あなたは間違いなくウェブアプリのためにその力が必要になります。

  • Sphinxを使用すると、大量のドキュメント/ファイルをすばやく検索することができます。インデックスも非常に高速です。検索結果を取得するためにJSONやXMLを解析するアプリでは使用しないことをお勧めします。直接dB検索に使用します。 MySQLでうまく機能します。

代替案

これらは巨人ですが、もっとたくさんあります。また、これらを使用してカスタムフレームワークを強化するものもあります。だから、私はあなたが本当に見逃していないと言うでしょう。 elasticsearch が1つありますが、これは優れたユーザーベースを持っています。

20
Augiwan

私はもう1年近くSphinxを使っていますが、すごいです。 MacBookでは約1分で150万件のドキュメントのインデックスを作成でき、サーバーではさらに高速です。また、特定の緯度と経度内の場所に検索を制限するためにSphinxを使用していますが、非常に高速です。また、結果のランク付け方法は微調整できます。チュートリアルを1つまたは2つ読んだ場合、インストールとセットアップが簡単です。ほぼ1.0のステータスですが、リリース候補は堅実です。

19
lo_fye

Lucene/Solrはより多くの機能を備えており、長年のビジネスとはるかに強力なユーザーコミュニティがあります。 (私たちではなく)直面していると思われる初期設定の問題を乗り越えることができれば、Lucene/Solrが最善の策だと思います。