概要
ランク句でスコアリングロジックをカスタマイズして、返されるドキュメントの順序を制御できます。
構文
{
"rank" : {
"ranking" : {
"lang": "expression",
"source" : "score_expression"
},
"reranking" : {
"lang": "expression",
"source" : "score_expression"
}
}
}デフォルトでは、粗ソートと精密ソートという2つのソートフェーズがあります。スコア式をカスタマイズして、各フェーズのスコアリングロジックを制御できます。 ranking 句は、粗ソート式を使用して計算される粗ソートスコアを指定します。 reranking 句は、精密ソート式を使用して計算される精密ソートスコアを指定します。返されるドキュメントは、次のルールに基づいてソートされます。
ranking 句のみを指定した場合、精密ソートスコアは粗ソートスコアと同じになります。ドキュメントの最終スコアは、精密ソートスコアです。
reranking 句のみを指定した場合、粗ソートスコアは static_bm25() 関数を使用して計算されます。精密ソートスコアは、精密ソート式を使用して計算されます。ドキュメントの最終スコアは、精密ソートスコアです。
ranking 句と reranking 句の両方を指定した場合、粗ソートスコアは粗ソート式を使用して計算され、精密ソートスコアは精密ソート式を使用して計算されます。ドキュメントの最終スコアは、精密ソートスコアです。
ranking 句も reranking 句も指定しない場合、粗ソートスコアは static_bm25() 関数を使用して計算されます。精密ソートスコアは、デフォルトで粗ソートスコアに 10,000 を加えた値になります。ドキュメントの最終スコアは、精密ソートスコアです。
パラメーター
lang: 必須。ソートスクリプトのタイプ。値を expression に設定します。
source: 必須。式のコンテンツ。式は算術式です。算術式のルールと機能の詳細については、ソート式を参照してください。
使用上の注意
返されるドキュメントの数が、精密ソートフェーズに含まれるドキュメントの数よりも多い場合、Searcher ワーカーから Query Result Searcher (QRS) ワーカーに返されるドキュメントの数は、精密ソートフェーズに含まれるドキュメントの数よりも多くなります。この場合、いくつかのドキュメントの最終スコアは粗ソートスコアになります。デフォルトでは、粗ソートスコアは 10,000 未満です。前述の問題を解決するために、エンジンはドキュメントの最終的な粗ソートスコアに 10,000 を加算して、ドキュメントの最終的な精密ソートスコアを取得します。クラスター構成で 10,000 を別の値に変更できます。