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

Amazon CloudSearch での値の範囲の検索

構造化クエリを使用して、1 つのフィールドで値の範囲を検索できます。値の範囲を指定するには、上限と下限をカンマ(,)で区切り、ブラケットか中括弧で範囲を囲みます。角括弧 [ または ] は、その境界も範囲に含まれることを示し、波括弧 { または } は、境界は除外することを示します。

たとえば、サンプルのデータセットから 2008 年から 2010 年まで(これらの年も含む)にリリースされた映画を検索するには、[2008,2010] のように範囲を指定します。

期限のない範囲を指定するには、境界を省略します。たとえば、year:[2002,} は 2002 年以降にリリースされたすべての映画に一致し、year:{,1970] は 1970 年までにリリースされたすべての映画に一致します。境界を省略するときは、波括弧を使用する必要があります。

複合クエリでは、range 演算子構文を使用して値の範囲を検索します。例: (range field=year [1967,})

日付範囲の検索

date フィールドで日付(または時刻)の範囲を検索するには、数値に使用するのと同じ、括弧付きの範囲構文を使用しますが、日付文字列は一重引用符で囲む必要があります。たとえば、次のリクエストは、リリース日が 2013 年 1 月 1 日以降のすべての映画を見つけるために映画データを検索します。

q.parser=structured&q=release_date:['2013-01-01T00:00:00Z',}

固定の範囲を検索するには、次の構文を使用します。

q.parser=structured&q=release_date:['2013-01-01T00:00:00Z','2013-01-02T23:59:59Z']

場所の範囲の検索

場所の範囲を検索することにより、境界ボックス検索を実行できます。latlon フィールドで場所の範囲を検索するには、数値に使用するのと同じ、括弧付きの範囲構文を使用しますが、緯度と経度のペアを一重引用符で囲む必要があります。

たとえば、各ドキュメントに location フィールドを含める場合、location:['nn.n,nn.n','nn.n,nn.n'] のように境界ボックスフィルタを指定することができます。次の例では、restaurant の一致がフィルタされ、カリフォルニア州パソロブレス市​のダウンタウンエリア内の一致のみが結果に含まれます。

q='restaurant'&fq=location:['35.628611,-120.694152','35.621966,-120.686706']&q.parser=structured

詳細については、「地理的場所に基づいた検索およびソート」を参照してください。

テキスト範囲の検索

括弧付きの範囲構文を使用すると、値の範囲を見つけるためにテキストまたはリテラルフィールドを検索することもできます。日付と同様に、テキスト文字列は一重引用符で囲む必要があります。たとえば、次のリクエストは、ドキュメント ID の範囲を見つけるために映画データを検索します。ドキュメント ID を参照するには、特別なフィールド名 _id を使用します。

_id:['tt1000000','tt1005000']