リライトパラメータ
このパラメータは専門ユーザー専用です。このパラメータの値を変更すると、検索のパフォーマンスや関連性に影響を与える可能性があります。
Elasticsearchは内部でApache Luceneを使用してインデックス作成と検索を行います。元の形では、Luceneは以下のクエリを実行できません:
これらを実行するために、Luceneはこれらのクエリをより単純な形式に変更します。例えば、bool
クエリやビットセットのように。
- 各一致するドキュメントの関連性スコアをLuceneがどのように計算するか
- Luceneが元のクエリを`````bool`````クエリまたはビットセットに変更するかどうか
- `````bool`````クエリに変更された場合、どの`````term`````クエリのクローズが含まれるか
## 有効な値
- `````constant_score_blended````` (デフォルト)
- 各ドキュメントに`````boost`````パラメータと等しい関連性スコアを割り当てます。
この方法は、最もコストのかかる用語に対して[`````bool`````クエリ](/read/elasticsearch-8-15/199b26891e5aa36d.md)のような実装を維持し、コストのかからない用語をフィルタビットセットに前処理します。
この方法は、生成された`````bool`````クエリが[`````indices.query.bool.max_clause_count`````](2ba3457ec191a33b.md#indices-query-bool-max-clause-count)設定のクローズ制限を超える原因となる可能性があります。この制限を超えると、Elasticsearchはエラーを返します。
- `````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_blended
、constant_score
、constant_score_boolean
、またはtop_terms_boost_N
リライトメソッドの使用を推奨します。
他のメソッドは関連性スコアを計算します。これらのスコア計算はしばしば高コストであり、クエリ結果を改善することはありません。