1. ホーム
  2. solr

[解決済み] ElasticSearch、Sphinx、Lucene、Solr、Xapian。どのような用途に適しているのか?[クローズド]

2022-03-22 11:56:18

質問

現在、巨大なSQLクエリを持つよりも、他の検索方法を検討しています。 私が見たのは エラスティックサーチ を使って遊んでみました。 フーッ (Pythonによる検索エンジンの実装)。

選択した理由を教えてください。

解決方法は?

ElasticSearchの開発者として、なぜ私が最初にそれを作ったのか、その理由を説明することができるかもしれません。)

純粋なLuceneを使用することは困難です。また、ライブラリであるため、分散サポートはなく、組み込みのJavaライブラリとしてメンテナンスが必要です。

Luceneの使い勝手という点では、昔(もう6年近く前)、Compassを作りました。その目的は、Luceneの使用を簡素化し、日々のLuceneをよりシンプルにすることだった。何度も何度も出会ったのは、Compassを配布できるようにすることだった。GigaSpaces、Coherence、Terracottaなどのデータグリッドソリューションと統合し、Compassの中から取り組み始めましたが、それだけでは不十分です。

Luceneの分散ソリューションの中核は、シャーディングである必要があります。また、HTTPやJSONがユビキタスAPIとして進化したことで、言語の異なる多くのシステムを簡単に利用できるソリューションということになります。

そのため、思い切ってElasticSearchを作りました。ElasticSearchは、非常に高度な分散モデルを持ち、JSONをネイティブに話し、多くの高度な検索機能を公開しますが、これらはすべてJSON DSLでシームレスに表現されます。

SolrもHTTPでインデックス/検索サーバを公開するソリューションですが、私は エラスティックサーチ は、はるかに優れた分散モデルと使いやすさを提供します(現在は検索機能の一部が不足していますが、そう長くはありません。 コンパス の機能をElasticSearchに取り込みました)。もちろん、ElasticSearchを作ったのは私なので、偏見もありますが、ご自身で確認してみてください。

Sphinxに関しては、私は使ったことがないので、コメントできません。私が紹介できるのは このスレッドはSphinxフォーラムにあります ElasticSearchの分散モデルの優位性を証明するものだと思います。

もちろん、ElasticSearchは分散型というだけでなく、さまざまな特徴を持っています。実はクラウドを意識して作られているんです。機能一覧はサイトで確認できます。