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

Amazon CloudSearch 2013-01-01 API への移行

Amazon CloudSearch 2013-01-01 API には、複数言語のサポート、結果での検索用語の強調表示、候補の取得などのいくつかの新機能が用意されています。これらの機能を使用するには、新しい 2013-01-01 検索ドメインを作成して設定し、2013-01-01 データ形式を使用して新しいドメインを設定するようにデータパイプラインを変更した後、2013-01-01 リクエスト形式でリクエストを送信するようにクエリパイプラインを更新します。この移行ガイドでは、API の変更点の概要を示し、アプリケーションに影響を与える可能性の高い API について説明しています。

2013-01-01 Amazon CloudSearch ドメインの作成

2013-01-01 API のリリース以前に Amazon CloudSearch ドメインを作成していた場合、新しいドメインを作成するときに、使用する API バージョンを選択できます。コンソールで 2013-01-01 ドメインを作成するには、Create Domain ウィザードで 2013-01-01 バージョンを選択します。コマンドラインから 2013-01-01 ドメインを作成するには、AWS CLI をダウンロードしてインストールし、aws cloudsearch create-domain コマンドを実行します。

注記

2013-01-01 ドメインを作成して対話するには、AWS CLI ツールを使用する必要があります。2011-02-01 ドメインを作成して対話するには、v1 ツールを使用する必要があります。

トピック

    2013-01-01 Amazon CloudSearch ドメインの設定

    コンソール、コマンドラインツール、または AWS SDK を使用して、2013-01-01​ ドメインを設定できます。2013-01-01​ ドメインは、複数の新しい設定オプションをサポートしています。

    • 分析スキーム ​— 分析スキームを設定して、text​ および text-array​ フィールドの言語固有のテキスト処理オプションを指定します。Amazon CloudSearch​ は、33 の言語をサポートすると共に、多言語フィールドのオプションをサポートするようになりました。詳細については、「分析スキームの設定」を参照してください。サポートされる言語の完全なリストについては、「サポートされている言語」を参照してください。

    • 可用性オプション — マルチ AZ オプションを有効にして、サービス中断が発生した場合に可用性を確保するために、ドメインを 2 番目のアベイラビリティーゾーンに拡張できます。詳細については、「可用性オプションの設定」を参照してください。

    • スケーリングオプション — 必要なインスタンスタイプと必要なレプリケーション数を設定して、アップロードや検索の処理能力の向上、検索リクエストの高速化、耐障害性の向上を実現できます。詳細については、「スケーリングオプションの設定」を参照してください。

    • サジェスタ — サジェスタを設定してオートコンプリート機能を実装できます。詳細については、「Amazon CloudSearch のサジェスタの設定」を参照してください。

    Amazon CloudSearch 設定サービスへのアクセスは、IAM によって管理され、特定の設定アクションへのアクセスを制御できるようになりました。Amazon CloudSearch ARN も変更されたことに注意してください。ドメインのドキュメントエンドポイントおよび検索エンドポイントへのアクセスは、Amazon CloudSearch 設定サービスによって管理されます。詳細については、「アクセスポリシーの設定」を参照してください。

    2013-01-01 ドメインは、拡張された一連のインデックス作成オプションもサポートします。

    • 分析スキーム — 各 text および text-array フィールドについて分析スキームを指定することにより、フィールドごとに特定の言語固有のテキスト処理を設定します。詳細については、「分析スキームの設定」を参照してください。

    • フィールドの型 — Amazon CloudSearch では、次の 11 のフィールドの型をサポートするようになりました。

      • date — タイムスタンプが含まれます。日付と時刻は、IETF RFC3339: yyyy-mm-ddT00:00:00Z に従って、UTC(協定世界時)で指定されます。UTC 形式で、たとえば、1970 年 8 月 23 日午後 5 時は、1970-08-23T17:00:00Z となります。

      • date-array — 複数の値を含むことができる date 型フィールド。

      • double — 倍精度 64 ビット浮動小数点値が含まれます。

      • double-array — 複数の値を含むことできる double 型フィールド。

      • int — 64 ビット符号付き整数値が含まれます。

      • int-array — 複数の値を含むことができる int 型フィールド。

      • latlon — 緯度と経度の値のペアとしての位置が保存されます。

      • literal — 正確な一致を可能にする識別子またはその他のデータが含まれます。

      • literal-array — 複数の値を含むことができる literal 型フィールド。

      • text — 任意の英数字データが含まれます。

      • text-array — 複数の値を含むことができる text 型フィールド。

    • 強調表示 — フィールドの強調表示オプションを有効にすると、そのフィールド内で検索用語が出現する箇所を示す抜粋を取得できます。詳細については、「Amazon CloudSearch で検索ヒットをハイライト」を参照してください。

    • ソース — あるフィールドから別のフィールドにデータをコピーするために、フィールドのソースを指定できます。フィールドに異なるオプションを設定することにより、同じソースデータを複数の方法で使用できます。

    2013-01-01 ドメインを設定する場合、重要な点がいくつかあります。

    • デフォルトでは、フィールドを追加すると、そのフィールド型で使用できるすべてのオプションが有効になります。これは開発およびテストでは便利ですが、不要なオプションを無効にすることによって、インデックスのサイズを縮小し、パフォーマンスを向上させることができます。

    • 複数値フィールドとして個別の配列型フィールドを使用する必要があります。

    • ソートを有効にすることができるのは、単一値フィールドのみです。

    • 強調表示を有効にすることができるのは、text フィールドと text-array フィールドのみです。

    • text フィールドと text-array フィールド以外のすべてのフィールドでファセットを有効にすることができます。

    • リテラルフィールドで、大文字と小文字が区別されるようになりました。

    • 浮動小数点値を整数として保存する必要がなくなりました — double フィールドを使用します。

    • 新しい latlon フィールド型を使用して位置を保存できます。詳細については、「地理的場所に基づいた検索およびソート」を参照してください。

    • int フィールドは 64 ビット符号付き整数です。

    • デフォルトの検索フィールドを設定する代わりに、検索リクエストで q.options パラメータを使用して検索するフィールドを指定できます。q.options パラメータによって、各フィールドの加重値を指定することもできます。

    • 式をソートおよび設定するときには、_score という名前でデフォルトの関連性スコアを参照します。関連性アルゴリズムの変更により、計算されたスコアは、2011-02-01 API の下でのスコアとは異なります。詳細については、「式の設定」を参照してください。

    • 式で、lognatan2haversin の各関数、および _score(テキスト関連性スコア)、_time(エポック時間)の各変数がサポートされるようになりました。latlon フィールドに位置を保存する場合、緯度と経度を値を、FIELD.latitudeFIELD.longitude として参照できます。式で int フィールドと double フィールドの両方を参照することもできます。サポートされなくなった関数として、cs.text_relevanceerflgammarand、および time があります。詳細については、「式の設定」を参照してください。

    2013-01-01 ドメインのインデックス作成オプションの設定の詳細については、「インデックスオプションの設定」を参照してください。可用性オプション、スケーリングオプション、テキスト処理オプション、サジェスタ、および式の設定の詳細については、「検索ドメインの作成と管理」を参照してください。

    新しい Amazon CloudSearch 設定サービスのアクションとオプション

    2013-01-01 設定サービス API に以下のアクションが追加されました。

    • DefineAnalysisScheme

    • DefineExpression

    • DefineSuggester

    • DeleteAnalysisScheme

    • DeleteExpression

    • DeleteSuggester

    • DexcribeAnalysisSchemes

    • DescribeAvailabilityOptions

    • DescribeExpressions

    • DescribeScalingParameters

    • DescribeSuggesters

    • ListDomainNames

    • UpdateAvailabilityOptions

    • UpdateScalingParameters

    インデックスフィールド、アクセスポリシー、およびサジェスタの describe アクションに、deployed オプションが追加されました。アクティブな設定を表示し、保留中の変更を除外するには、deployed オプションを true に設定します。

    サポートされなくなった Amazon CloudSearch 設定サービスのアクションとオプション

    以下のアクションは、2013-01-01 設定サービス API ではサポートされていません。

    • DefineRankExpression

    • DescribeRankExpression

    • DeleteRankExpression

    • DescribeDefaultSearchField

    • DescribeStemmingOptions

    • DescribeStopwordOptions

    • DescribeSynonymOptions

    • UpdateDefaultSearchField

    • UpdateStemmingOptions

    • UpdateStopwordOptions

    • UpdateSynonymOptions

    2013-01-01 Amazon CloudSearch ドメインへのデータのアップロード

    2013-01-01 API では、ドキュメントのバージョンを指定する必要がなくなりました — 更新は受信した順序で適用されます。また、ドキュメントごとに lang 属性を指定する必要もありません — それぞれの text フィールドや text-array フィールドの分析スキームを設定することにより、言語固有のテキスト処理を制御します。

    2013-01-01 ドメインにデータをアップロードするには、次のようにする必要があります。

    • ドキュメントバッチから version 属性と lang 属性を省略します。

    • すべてのドキュメントフィールドがドメイン用に設定されたインデックスフィールドに対応していることを確認します。認識されないフィールドは無視されなくなり、エラーが生成されます。

    • 2013-01-01 ドメインのドキュメントエンドポイントにドキュメントバッチを投稿します。2013-01-01 API バージョンを指定する必要があることに注意してください。たとえば、次のリクエストは、data1.json に含まれるバッチを doc-movies-123456789012.us-east-1.cloudsearch.amazonaws.com エンドポイントに投稿します。

      curl -X POST --upload-file data1.json doc-movies-123456789012.us-east-1. cloudsearch.amazonaws.com/2013-01-01/documents/batch --header "Content-Type: application/json"

    2013-01-01 API では、アップロードの処理能力を向上させるために、ドメインの事前スケーリングをサポートしています。アップロードするデータが大量にある場合は、ドメインのスケーリングオプションを設定し、必要な大きさのインスタンスタイプを選択します。より大きいインスタンスタイプに移行すると、バッチを並行してアップロードすることができ、データのインデックス作成にかかる時間を短縮できます。詳細については、「スケーリングオプションの設定」を参照してください。

    データの形式の詳細については、「データの準備」を参照してください。

    2013-01-01 Amazon CloudSearch ドメインの検索

    既存の Amazon CloudSearch 検索ドメインを 2013-01-01 API に移行するために必要な作業の多くは、2013-01-01 互換の検索リクエストを送信するためのクエリパイプラインの更新です。

    • すべてのリクエストで 2013-01-01 API バージョンを使用します。

    • すべてのリクエストで検索条件を指定するには、q パラメータを使用します。bq パラメータはサポートされなくなりました。構造化(ブール)検索構文を使用するには、リクエストで q.parser=structured を指定します。

    • 検索リクエスト内でパラメータを繰り返すことはできません。

    • ワイルドカード文字(*)は、simple クエリパーサーを使用する場合にのみサポートされます。構造化クエリパーサーを使用して、プレフィックスマッチングを実行するには、prefix 演算子を使用します。("q=(prefix 'oce')&q.parser=structured" など)。

    • 検索リクエストでドキュメント ID フィールドを参照するには、フィールド名 _id を使用します。フィールド名 docid はサポートされなくなりました。

    • フィールドで指定された範囲内の値を検索するには、range 演算子を使用します。filter 演算子はサポートされなくなりました。

    • 日付や latlon フィールドに保存されている位置など、値の範囲を検索するには、新しい範囲構文を使用します。二重ドット(..)表記はサポートされなくなりました。上限と下限をカンマ(,)で区切り、範囲を角括弧または中括弧で囲みます。角括弧([、])は境界が含まれることを示し、中括弧()は境界を除外します。たとえば、year:2008..2011year:[2008,2011] と表されるようになりました。year:..2011 などの無制限な範囲は、year:{,2011] のように表されるようになりました。

    • フィールドで特定の値を検索するには、term 演算子を使用します。field 演算子はサポートされなくなりました。

    • フィールドの加重を指定するには、q.options パラメータを使用します。cs.text_relevance 関数はサポートされなくなりました。たとえば、q.options={fields:['title^2','plot^0.5']} と指定します。

    • 一致するドキュメントのスコア化およびソートの方法に影響を与えることなく、結果をフィルタするには、fq パラメータを使用します。

    • プレフィックスパラメータでは、expr.NAMEfacet.FIELDhighlight.FIELD のように、区切り文字としてハイフン(-)ではなく、ドット(.)を使用します。

    • すべてのファセットオプションを指定するには、facet.FIELD パラメータを使用します。facet-FIELD-top-Nfacet-FIELD-sort、および facet-FIELD-constraints パラメータはサポートされなくなりました。

    • ソートに使用する式またはフィールドを指定するには、sort パラメータを使用します。sort パラメータでは、明示的にソート方向を指定する必要があります。("sort=rank asc, date desc" など)。rank パラメータはサポートされなくなりました。

    • 検索リクエストで式を定義するには、expr.NAME を使用します。rank-RANKNAME パラメータはサポートされなくなりました。

    • 結果を XML 形式で取得するには、format=xml を使用します。result-type パラメータはサポートされなくなりました。

    2013-01-01 検索 API は、複数の新しい機能もサポートします。

    • 用語の増強 — クエリの一部の重要度を他の部分よりも高くするには、構造化クエリで boost オプションを使用します。詳細については、「複合クエリの作成」を参照してください。

    • あいまいフレーズ検索 — text または text-array フィールドで複数の用語を検索し、相互に指定された範囲内に用語を含むドキュメントを見つけるには、構造化クエリで near 演算子を使用します。simple クエリパーサーで、~ 演算子と値をフレーズに追加することにより、あいまいフレーズ検索を実行することもできます。詳細については、「フレーズの検索」を参照してください。

    • あいまい検索 — ~ 演算子を使用して、simple クエリパーサーであいまい検索を実行できます。異なっていても一致と見なされる用語の数を指定するには、~ 演算子と値を用語に追加します。詳細については、「個々の用語の検索」を参照してください。

    • 強調表示 — 特定のフィールドで一致を強調表示するには、highlight.FIELD パラメータを使用します。詳細については、「Amazon CloudSearch で検索ヒットをハイライト」を参照してください。

    • オートコンプリート — オートコンプリートされたクエリと、それらが見つかったドキュメントのリストを取得するには、サジェスタを設定し、suggester リソースにリクエストを送信します。詳細については、「Amazon CloudSearch での自動入力候補の取得 」を参照してください。

    • 部分的な検索結果 — 1 つまたは複数のインデックスパーティションが使用できないときに部分的な結果を取得するには、partial=true パラメータを使用します。デフォルトでは、Amazon CloudSearch はすべてのパーティションにクエリを実行できる場合にのみ結果を返します。

    • ディープページ分割 — 結果セットが大きい場合に、結果をページ分割するには、cursor パラメータを使用します。詳細については、「結果をページ分割する」を参照してください。

    • すべてのドキュメントが一致 — インデックス内のすべてのドキュメントを取得するには、matchall 構造化クエリ演算子を使用します。

    • 新しいクエリパーサー — simple または構造化パーサーの代わりに、Lucene または DisMax を選択するには、q.parser パラメータを使用します (q.parser=lucene または q.parser=dismax)。

    検索時の動作もいくつか変更されています。

    • 大文字と小文字が連続している場合、文字列はトークン分割されなくなりました。また、ピリオドの後にスペースがない場合、ピリオドは文字列の一部と見なされます。詳細については、「Amazon CloudSearch でのテキスト処理」を参照してください。

    • リテラルフィールドで、大文字と小文字が区別されるようになりました。

    • 検索レスポンスに、ランク、一致式、または CPU 時間は含まれなくなりました。返されるステータス情報は、リソース ID(rid)と処理時間(time-ms)のみです。

    • int フィールドのファセット情報を取得するとき、min 値と max 値が返されなくなりました。

    データの検索の詳細については、「Amazon CloudSearch でのデータの検索」および「API の検索」を参照してください。

    Amazon CloudSearch 2013-01-01 検索 API の新しいパラメータとオプション

    2013-01-01 検索 API に以下のパラメータが追加されました。

    • cursor.FIELD

    • expr.NAME

    • facet.FIELD

    • format

    • fq

    • highlight.FIELD

    • partial

    • pretty

    • q.options

    • q.parser

    • return

    • sort

    あいまい検索およびあいまいフレーズ検索をサポートするために、シンプルなクエリ言語に ~ 演算子が追加されました。

    構造化クエリ言語に以下の演算子が追加されました。

    • boost

    • matchall

    • near

    • phrase

    • prefix

    • range

    • term

    サポートされなくなった Amazon CloudSearch 検索パラメータとオプション

    2013-01-01 検索 API では、以下のパラメータはサポートされなくなりました。

    • bq

    • facet-FIELD-top-N

    • facet-FIELD-sort

    • facet-FIELD-constraints

    • rank

    • rank-RANKNAME

    • return-fields

    • result-type

    • t-FIELD

    以下の演算子とショートカットは構造化クエリではサポートされなくなりました。

    • field

    • フィルタ

    • -

    • |

    • +

    • *

    Amazon CloudSearch 2013-01-01 の更新された制限事項

    この表は、Amazon CloudSearch の制限事項の変更および追加をまとめたものです。Amazon CloudSearch の制限事項の完全なリストについては、「制限」を参照してください。

    変更 概要
    予約名 score が唯一の予約名です。
    制限のない戻りデータ テキストフィールドから返されるデータは 2 KB で切り捨てられなくなりました。ただし、最大ドキュメントサイズが 1 MB であることに注意してください。
    ステミング、ストップワード、またはシノニムのディクショナリに制限がなくなりました。 ステミング、ストップワード、およびシノニムのディクショナリは、分析スキームで設定され、分析スキーム定義のサイズに制限はありません。
    フィールドの値の最大数 配列型フィールドには、最大 1000 個の値を含めることができます。
    フィールドサイズ literal フィールドの最大サイズは、4096 の Unicode コードポイントです。
    int フィールドの範囲 int フィールドには、-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807(この値を含む)の範囲の値を含めることができます。
    強調表示の最大数 強調表示できる検索用語の最大出現回数は 5 です。
    サジェスタの最大数 ドメインで設定できるサジェスタの最大数は 10 です。
    同時に取得できる最大ヒット数 同時に取得できる最大ヒット数は 10,000 です。size パラメータには、0 ~ 10000 の範囲の値を含めることができます。