リライトパラメータ

このパラメータは専門ユーザー専用です。このパラメータの値を変更すると、検索のパフォーマンスや関連性に影響を与える可能性があります。

Elasticsearchは内部でApache Luceneを使用してインデックス作成と検索を行います。元の形では、Luceneは以下のクエリを実行できません:

これらを実行するために、Luceneはこれらのクエリをより単純な形式に変更します。例えば、boolクエリビットセットのように。

  1. - 各一致するドキュメントの関連性スコアをLuceneがどのように計算するか
  2. - Luceneが元のクエリを`````bool`````クエリまたはビットセットに変更するかどうか
  3. - `````bool`````クエリに変更された場合、どの`````term`````クエリのクローズが含まれるか
  4. ## 有効な値
  5. - `````constant_score_blended````` (デフォルト)
  6. - 各ドキュメントに`````boost`````パラメータと等しい関連性スコアを割り当てます。
  7. この方法は、最もコストのかかる用語に対して[`````bool`````クエリ](/read/elasticsearch-8-15/199b26891e5aa36d.md)のような実装を維持し、コストのかからない用語をフィルタビットセットに前処理します。
  8. この方法は、生成された`````bool`````クエリが[`````indices.query.bool.max_clause_count`````](2ba3457ec191a33b.md#indices-query-bool-max-clause-count)設定のクローズ制限を超える原因となる可能性があります。この制限を超えると、Elasticsearchはエラーを返します。
  9. - `````constant_score
  • 一致する用語が少ない場合はconstant_score_booleanメソッドを使用します。それ以外の場合、この方法はすべての一致する用語を順番に見つけ、ビットセットを使用して一致するドキュメントを返します。
  • constant_score_boolean
  • 各ドキュメントにboostパラメータと等しい関連性スコアを割り当てます。
    この方法は、元のクエリをboolクエリに変更します。このboolクエリには、shouldクローズと各一致する用語のためのtermクエリが含まれます。
    この方法は、最終的なboolクエリがindices.query.bool.max_clause_count設定のクローズ制限を超える原因となる可能性があります。この制限を超えると、Elasticsearchはエラーを返します。
  • scoring_boolean
  • 各一致するドキュメントの関連性スコアを計算します。
    この方法は、元のクエリをboolクエリに変更します。このboolクエリには、shouldクローズと各一致する用語のためのtermクエリが含まれます。
    この方法は、最終的なboolクエリがindices.query.bool.max_clause_count設定のクローズ制限を超える原因となる可能性があります。この制限を超えると、Elasticsearchはエラーを返します。
  • top_terms_blended_freqs_N
  • 各一致するドキュメントの関連性スコアを、すべての用語が同じ頻度であるかのように計算します。この頻度は、すべての一致する用語の最大頻度です。
    この方法は、元のクエリをboolクエリに変更します。このboolクエリには、shouldクローズと各一致する用語のためのtermクエリが含まれます。
    最終的なboolクエリには、上位Nスコア用語のtermクエリのみが含まれます。
    この方法を使用して、indices.query.bool.max_clause_count設定のクローズ制限を超えないようにすることができます。
  • top_terms_boost_N
  • 各一致するドキュメントにboostパラメータと等しい関連性スコアを割り当てます。
    この方法は、元のクエリをboolクエリに変更します。このboolクエリには、shouldクローズと各一致する用語のためのtermクエリが含まれます。
    最終的なboolクエリには、上位N用語のtermクエリのみが含まれます。
    この方法を使用して、indices.query.bool.max_clause_count設定のクローズ制限を超えないようにすることができます。
  • top_terms_N
  • 各一致するドキュメントの関連性スコアを計算します。
    この方法は、元のクエリをboolクエリに変更します。このboolクエリには、shouldクローズと各一致する用語のためのtermクエリが含まれます。
    最終的なboolクエリには、上位Nスコア用語のtermクエリのみが含まれます。
    この方法を使用して、indices.query.bool.max_clause_count設定のクローズ制限を超えないようにすることができます。

リライトパラメータのパフォーマンス考慮事項

ほとんどの使用において、constant_score_blendedconstant_scoreconstant_score_boolean、またはtop_terms_boost_Nリライトメソッドの使用を推奨します。

他のメソッドは関連性スコアを計算します。これらのスコア計算はしばしば高コストであり、クエリ結果を改善することはありません。