すべてのプロダクト
Search
ドキュメントセンター

OpenSearch:sort 句

最終更新日:Dec 28, 2024

概要

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 式を指定することをお勧めします。