精密なソート式は、大まかにソートされた結果をスコアリングおよびソートして、最適な結果を返すために使用されます。アプリケーションのカスタムソート式を作成し、検索クエリでソート式を指定して結果をソートできます。ソート式は、基本演算、数学関数、および特徴関数をサポートしています。基本演算には、算術演算、関係演算、論理演算、ビット演算、条件演算が含まれます。OpenSearchでは、フォーラムやニュースアプリケーションなどの一般的なアプリケーションで検索結果を関連度でソートできます。データ特性に基づいて適切な式テンプレートを選択し、選択したテンプレートを変更してカスタム式を生成できます。このトピックでは、サポートされている精密なソート関数について説明します。
注記: 算術演算、関係演算、論理演算、条件演算などの基本演算を実行するには、ソート式で数値またはNUMERIC型のフィールド値を使用する必要があります。ほとんどの関数ベースの演算は、STRING型の値に対して実行できません。
テキスト関連度
text_relevance: 検索クエリとドキュメント内のフィールド値との間のテキスト関連度を計算します。
field_match_ratio: 検索クエリに一致する用語の数とフィールド内の用語の総数との比率を返します。
query_match_ratio: 特定のフィールドでヒットした用語の数と検索クエリ内の用語の総数との比率を返します。
fieldterm_proximity: フィールド内の用語の近接度を返します。
field_length: フィールド内の用語の数を返します。
query_term_count: 解析後の検索クエリ内の用語の数を返します。
query_term_match_count: ドキュメント内の特定のフィールドでヒットした検索クエリ内の用語の数を返します。
field_term_match_count: フィールド内で検索クエリに一致する用語の数を返します。
query_min_slide_window: 特定のフィールドでヒットした検索クエリ内の用語の数と、フィールド内のこれらの用語の最小ウィンドウとの比率を返します。
地理的位置関連度
distance: 2点間の球面距離を返します。一般的に、この関数は位置情報サービス(LBS)の距離計算で使用されます。
gauss_decay: ガウス関数を使用して、値と指定された開始点との間の距離に基づいて減衰度を計算します。
linear_decay: 線形関数を使用して、値と指定された開始点との間の距離に基づいて減衰度を計算します。
exp_decay: 指数関数を使用して、値と指定された開始点との間の距離に基づいて減衰度を計算します。
適時性
timeliness: ドキュメントの新しさを示す適時性スコアを秒単位で返します。
timeliness_ms: ドキュメントの新しさを示す適時性スコアをミリ秒単位で返します。
機能
tag_match: タグに基づいてクエリ句とドキュメントを照合し、一致したタグの重みを計算することでドキュメントをスコアリングします。
first_phase_score: 大まかなソート式を使用して計算されたスコアを返します。
kvpairs_value: クエリ内のkvpairs句で指定されたフィールドの値を返します。
normalize: 異なる値範囲のスコアを[0,1]の範囲の数値に正規化します。
inまたはnotin: フィールド値が特定のリストに含まれているかどうかを確認します。