概要
sort 句を指定して、指定したフィールドに基づいてクエリ結果を昇順または降順にソートできます。
構文
パラメーターと使用上の注意:
expression: フィールド
field: システムがクエリ結果をソートする際に基づいて使用するフィールド。
加算演算子 (+)、減算演算子 (-)、乗算演算子 (*)、除算演算子 (/) などの基本的な算術演算子を使用してフィールドを結合できます。演算子を使用して結合するフィールドは、同じデータ型である必要があります。
sort 句でソート規則として RANK を指定できます。RANK は、指定した sort 式を使用して計算された関連性スコアを指定します。
order パラメーターは、指定したフィールドの値に基づいてクエリ結果をソートする昇順または降順を指定します。有効な値: asc および desc。デフォルト値: desc。
OpenSearch では、sort 句に複数のソート規則を指定できます。システムは、まず sort 句の最初のソート規則に基づいてクエリ結果をソートします。最初のソート中に取得された関連性スコアが同じクエリ結果については、システムは 2 番目のソート規則に基づいてこれらのクエリ結果をソートします。このプロセスは、すべてのクエリ結果が適切にソートされるまで続きます。
例:
{
"sort" : [
{
"expression" : "price*10",
"order" : "desc"
},
{
"expression" : "RANK",
"order" : "asc"
}
]
}sort 句は省略可能です。sort 式を定義して、クエリ結果を昇順または降順にソートできます。
使用上の注意
sort 句は省略可能です。クエリステートメントに sort 句を含めない場合、デフォルトで RANK がソート規則として使用されます。システムは、指定した sort 式を使用して計算された関連性スコアに基づいて、クエリ結果を降順にソートします。クエリステートメントに sort 句を含めても、ソート規則として RANK を指定しない場合、指定した sort 式は有効になりません。
sort 句で指定するフィールドは、schema.json ファイルで指定する属性フィールドである必要があります。
sort 句では、INT 型または FLOAT 型の値を返す sort 関数を使用することもできます。
sort 句で STRING 型のフィールドを指定すると、システムは文字をアルファベット順にソートし、数字を昇順または降順にソートし、漢字を ASCII 値に基づいてソートします。
sort 句に複数値フィールドを指定することはできません。
sort 句に複数のソート規則が含まれている場合、ソートのパフォーマンスは、ソート規則で指定されている各フィールドのデータによって異なります。安定したソートパフォーマンスを確保するために、sort 式を指定することをお勧めします。