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

検索リクエスト内での Amazon CloudSearch 式の定義

結果のソートに使用する式を細かくチューニングしながら、すばやく反復処理できるように、検索リクエスト内で直接、式を定義して使用できます。また、検索リクエスト内で式を定義することで、ユーザーの位置情報などのコンテキスト情報を式に組み込むこともできます。ドメイン設定で定義された式を上書きするために、検索リクエスト内で同じ名前の式を定義することもできます。

検索リクエスト内で式を定義すると、その式はドメイン設定の一部として保存されません。その式を他のリクエスト内でも使用する場合は、各リクエストで定義するか、ドメイン設定に追加する必要があります。式をドメイン設定に追加せずに、各リクエストに定義すると、リクエストのオーバーヘッドが増加し、その結果として応答時間が遅くなり、ドメインの運用コストが増える可能性があります。ドメイン設定に式を追加する方法については、「式の設定」を参照してください。

検索リクエストで複数の式を定義して使用することができます。式の定義では、ドメイン設定の一部として設定された式だけでなく、リクエストに定義された他の式も参照できます。

検索リクエストで定義する式の使用方法に制限はありません。式を使用することで、検索結果をソートしたり、他の式を定義したり、検索結果内に計算後の情報を返したりできます。

検索リクエスト内で式を定義するには

  1. expr.NAME パラメーターを使用します。ここで、NAME は定義する式の名前です。(例:

    expr.rank1=log10(clicks)*_score
  2. 式を使用して結果をソートするには、sort パラメーターで式の名前を指定します。

    search?q=terminator&expr.rank1=log10(clicks)*_score&sort=rank1 desc
  3. 検索結果内に計算後の値を返すには、return フィールドのリストに式を追加します。

    search?q=terminator&expr.rank1=log10(clicks)*_score&sort=rank1 desc&return=rank1

たとえば、以下のリクエストは結果のソートに使用される 2 つの式を作成し、検索結果にそのうちの 1 つを返します。

search?q=terminator&expr.rank1=sin( _score)&expression.rank2=cos( _score)&sort=rank1 desc,rank2 desc&return=title,_score,rank2