6

Elasticsearch と Solr のスケーラビリティ、速度、および展開シナリオを比較する多くの質問 (および適切な回答) を見てきましたが、クエリがどのように機能するかの違いや相対的な強みに関する適切な情報を見つけることができないようです。インデックス付きデータ。

特に、elasticsearch と Solr の次の点での違いに興味があります。

  1. ファセット機能: ファセットの処理はどのように異なりますか、または基本的に同じですか?

  2. スキーマ処理: Elasticsearch には、残りの API を介してオンザフライでスキーマを定義できるという点で柔軟性があるようですが、Solr ではスキーマを schemas.xml で事前に定義する必要があります (ただし、この違いの具体的な確認は見ていません)。 )。それ以外のスキーマの使用方法に実質的な違いはありますか?

  3. 索引付けフィルター: 特定の検索用にデータを最適化する方法に違いはありますか? たとえば、検索アルゴリズムのカスタマイズ性を高める Solr のフィールド複製やクエリ トークン化フィルターなどについての言及を見たことがありますが、elasticsearch に関する同じような情報はあまり見たことがありません。

  4. クエリの表現力: クエリ DSL は基本的に互いに表現力が同じですか、それとも根本的な違いがありますか?

  5. 「ブースト」および/または結果のカスタマイズ: アルゴリズム検索結果をハードコーディングまたはマッサージするための機能は何ですか?

繰り返しますが、私は速度/スケーラビリティ/パフォーマンスの問題にはまったく関心がなく、検索データの構造化とクエリ言語の表現力に関心があることに注意してください。おそらく、この質問全体は次のように要約できます。実行できる検索はありますか、またはSolrでは複製できないelasticsearchで作成できるデータ構造、またはその逆?

4

1 に答える 1

7
  1. ファセットはほぼ同じですが、ES では動的スクリプトを介しても許可され、Solr ではファセットのページネーションが許可されます。また、Solr には、単純なショップ検索スタイルのファセットを行うための便利なファセット スキーマがあります (注: ES でも比較的簡単ですが、すぐに使用できるわけではありません)。ES ファセットは、ファセットをフィルタークエリにバインドする必要がないため、より強力になる可能性があります。

  2. for ES スキーマは API 経由で更新できます。またはファイルで定義し、typeに指定します。Solr の場合、 indexごとに構成ファイルを作成します。ところで:動的フィールドを使用すると、Solrのスキーマの制限が少なくなります。

  3. ES には、自動ウォーミング機能 (ただし、これはパフォーマンスに関連するものであるため、興味深いものではありません ;)) とグループごとの機能のみが欠けています。それ以外の場合は、両方とも同様の lucene を使用します。ES では、lucene で可能なように、多くの高度な組み合わせが可能です。親子機能は group by 機能に似ており、Solr IMO には実装されていません。

  4. ES の標準クエリは JSON を介して作成されるため、lucene を介して作成できるほぼすべてのものを作成できます。Solr では、多くの高度なことを行うことができますが、多くの場合、ローカル パラメータなどの Solr に関する基本的な知識が必要です。この素敵な議論をご覧ください。

  5. これを理解していない:)

私が実行できる検索や、Solr では複製できない Elasticsearch で作成できるデータ構造はありますか、またはその逆ですか?

ES には、おそらく Solr で実装するのが難しいパーコレーター機能があります。ES には、楽観的ロックを実装するためのバージョン管理機能もあり、インデックス エイリアシングと、インデックスを深くナビゲートするためのスキャン クエリがあります。Solr に同様の機能があるかどうかはわかりません。たとえば、エイリアシングはローリング インデックスの実装に役立ちます。比較的短い。

于 2011-12-09T20:25:18.437 に答える