

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Amazon CloudSearch での結果のソート
<a name="sorting-results"></a>

デフォルトでは、検索結果は検索リクエストとの関連性に基づいてソートされます。ドキュメントの関連性スコア (`_score`) は、検索用語がドメインのすべてのドキュメントに出現する頻度と、そのドキュメントに出現する頻度を比較した結果に基づいて計算されます。関連性スコアは、データおよびクエリによって大きく異なる正の値です。クエリの各句のスコアは加算されるため、句の数が多いほど、句の数が 1 つまたは 2 つのクエリよりも当然高いスコアになります。一般的なクエリがどのような結果になるかわかっている場合は、テストクエリを実行して、実際のスコアの範囲がどのようになるか確認することができます。

検索結果のソート方法を変更するには、以下の方法があります。
+ `text` または `literal` フィールドを使用して、結果をアルファベット順にソートします。Amazon CloudSearch では Unicode コードポイントでソートされるため、数字が文字の前に、大文字が小文字の前に来ることに注意してください。数は値ではなく文字列としてソートされ、例えば 10 は 2 の前に来ます。
+ `int` または `double` フィールドを使用して、結果を数値順にソートします。
+ `date` フィールドを使用して、結果を日付順にソートします。
+ カスタム式を使用して、結果をソートします。

フィールドを使用して検索結果をソートするには、そのフィールドを `SortEnabled` に設定する必要があります。`SortEnabled` にできるのは単一値フィールドのみです。配列型のフィールドをソート時に使用することはできません。フィールドの設定の詳細については、「[インデックスフィールドの設定](configuring-index-fields.md)」を参照してください。

ソート時に式を使用するには、`int` フィールド、その他の式、ドキュメントの関連性スコア、数値演算子および数値関数を使用して、数式を作成します。式は、ドメイン設定または検索リクエスト内で定義できます。式の設定の詳細については、「[式の設定](configuring-expressions.md)」を参照してください。

**ヒント**  
ランダムに結果をソートするには、単純な `_rand` 式を使用できます。  

```
/2013-01-01/search?expr.r=_rand&q=test&return=r%2Cplot%2Ctitle&sort=r+desc
```
この式は安定していて、最初のランダム化されたソートを失くことなく前後に移動できます。別のランダム化されたソートを使用する場合は、次のように、`a-z` の値の後に `0-9` または `_rand` 文字を追加できます。  

```
/2013-01-01/search?expr.r=_rand1a2b3c&q=test&return=r%2Cplot%2Ctitle&sort=r+desc
```

結果のソートに使用するフィールドまたは式を指定するには、`sort` パラメータを使用します。フィールドまたは式の名前と共に、明示的にソート方向を指定する必要があります。例えば、`sort=year asc`、`sort=year desc` です。

ソートにフィールドを使用するとき、値がないドキュメントは最後に表示されます。フィールドまたは式のカンマ区切りリストを指定する場合は、最初のフィールドまたは式はプライマリソート条件として使用され、2 番目はセカンダリソート条件として使用され、以降も同様です。

 `sort` パラメータを指定しなかった場合、検索結果は、ドキュメントのデフォルトの関連性スコアを使用してランク付けされ、スコアの高いドキュメントから順に表示されます。これは `sort=_score desc` を指定した場合と同等です。

`q.options` パラメータを使用して、ドキュメントの関連性 `_score` を計算する際にフィールドに適用する重みを指定できます。詳細については、「[フィールドの相対的重み付けを利用したテキストの関連性のカスタマイズ](weighting-fields.md)」を参照してください。