Amazon CloudSearch
開発者ガイド (API バージョン 2013-01-01)

Amazon CloudSearch での式の設定

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

Amazon CloudSearch の式の記述

Amazon CloudSearch の式は以下で構成される可能性があります。

  • 1 つの値が含まれるソート可能な数値フィールド (intdoubledate)。(特定のフィールドを指定する必要があります。ワイルドカードはサポートされていません。)

  • その他の式

  • ドキュメントの関連性スコアを参照する _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 の優先順位ルール が演算子に適用されます。演算子の優先順位は括弧を使用することで変更できます。

論理式の評価にはショートカット評価が使用されます—式の値が最初の引数の評価後に決定できる場合、2 番目の引数は評価されません。たとえば、式 a || bb が評価されるのは、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 式での日付型フィールドの使用

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

_score/(_time - release_date)

このページの内容: