

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

# Amazon CloudSearch での式の設定
<a name="configuring-expressions"></a>

数値式を定義し、検索結果のソートに使用できます。式は検索結果内に返すこともできます。ドメイン設定に式を追加したり、検索リクエストで式を定義したりできます。

**Topics**
+ [Amazon CloudSearch の式の記述](#writing-expressions)
+ [query time expressions](defining-expressions-in-requests.md)
+ [Amazon CloudSearch 内の検索ドメインに対する再利用可能な式の設定](configuring-reusable-expressions.md)
+ [Amazon CloudSearch での式の比較](comparing-expressions.md)

## Amazon CloudSearch の式の記述
<a name="writing-expressions"></a>

Amazon CloudSearch の式は以下で構成されている可能性があります。
+ 1 つの値が含まれるソート可能な数値フィールド (`int`、`double`、`date`)。(特定のフィールドを指定する必要があります。ワイルドカードはサポートされていません。)
+ その他の式
+ ドキュメントの関連性スコアを参照する `_score` 変数
+ 現在のエポック時間を参照する `_time` 変数
+ ランダムに生成された値を返す `_rand` 変数
+ 整数、浮動小数点、16 進数、8 進数のリテラル
+ 算術演算子: `+ - * / %`
+ ビット演算子: ` | & ^ ~ << >> >>>`
+ ブール演算子 (三項演算子を含む): ` && || ! ?: `
+ 比較演算子: ` < <= == >= > `
+ 数学関数: `abs ceil exp floor ln log10 logn max min pow sqrt `
+ 三角関数: `acos acosh asin asinh atan atan2 atanh cos cosh sin sinh tanh tan`
+ `haversin` 距離関数

[ JavaScript の優先順位ルール ](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Operator_Precedence#Table) が演算子に適用されます。演算子の優先順位は括弧を使用することで変更できます。

論理式の評価にはショートカット評価が使用されます式の値が最初の引数の評価後に決定できる場合、2 番目の引数は評価されません。例えば、式 `a || b` で `b` が評価されるのは、`a` が true でない場合のみです。

式は常に、0 から符号付き 64 ビット整数最大値 (2^63 - 1) までの整数値を返します。中間結果は倍精度浮動小数点値として計算され、戻り値は最も近い整数に丸められます。式は、無効であるか負の値に評価された場合は、0 を返します。式は、最大値よりも大きい値に評価された場合は、最大値を返します。

式名は、3 文字以上、64 文字以内で、先頭は英字にする必要があります。a～z (小文字)、0～9、\_ (下線) の文字を使用できます。*score* という名前は予約済みのため、式名として使用できません。

例えば、ドメインに *popularity* という `int` フィールドを定義した場合、そのフィールドとデフォルトの関連性 `_score` を組み合わせてカスタム式を作成できます。

```
(0.3*popularity)+(0.7*_score)
```

この簡単な例では、使用頻度ランクと関連性 \_score の値がほぼ同じ範囲内にあることを想定しています。結果をランク付ける式をチューニングするには、式の構成要素に付ける重みをテストして、必要な結果が得られる重みを決定する必要があります。

### Amazon CloudSearch の式での日付フィールドの使用
<a name="using-dates-in-expressions"></a>

`date` フィールドの値は、ミリ秒単位でエポック時刻として保存されます。つまり、ドキュメントに保存された日付と現在のエポック時刻 (`_time`) を使用した式を構築するために算術演算子と比較演算子を使用できるということです。例えば、以下の式を使用して movies ドメインの検索結果をソートすると、リリース日が最近の映画がリストの先頭に来ます。

```
_score/(_time - release_date)
```