高度ソート式は、基本ソートで得られた候補ドキュメントにスコアを付与し、最も高い順位の結果を返します。アプリケーションごとにカスタムのソート式を定義し、検索クエリに渡すことで、結果の順位付けを制御できます。ソート式では、基本操作(算術演算、比較演算、論理演算、ビット演算、条件付き演算)、数学関数、および本ページで説明する特徴量関数がサポートされます。
基本操作(算術演算、比較演算、論理演算、条件付き演算)は、数値または 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 | フィールド内でそれらの用語を含む最小ウィンドウに対する、特定フィールドにヒットしたクエリ用語数の比率 |
地理的位置関連性
地理関数を使用して、基準点からの距離に基づきドキュメントにスコアを付与します。3 つの減衰関数(gauss_decay、linear_decay、exp_decay)は、共通の概念に基づいています。すなわち、指定された原点から離れるほどスコアが低下するという計算を行いますが、減衰曲線の形状(ガウス分布のベル曲線、線形、指数関数)が異なります。距離によるスコアの低下率をどの程度急峻にしたいかに応じて、適切な曲線を選択してください。
| 関数 | 戻り値 |
|---|---|
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 | フィールド値が指定されたリストに含まれる(または含まれない)かどうか |
次のステップ
検索結果を関連度で並べ替える — フォーラム、ニュース、および同様のアプリケーション向けに、関連度に基づくランキングを始めましょう。