

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

# Amazon CloudSearch とは
<a name="what-is-cloudsearch"></a>

**重要**  
Amazon CloudSearch は新規顧客には利用できなくなりました。Amazon CloudSearch の既存のお客様は、通常どおりサービスを引き続き使用できます。[詳細はこちら](https://aws.amazon.com/blogs/big-data/transition-from-amazon-cloudsearch-to-amazon-opensearch-service/)。

Amazon CloudSearch はクラウドにおけるフルマネージドサービスであり、ウェブサイトまたはアプリケーション向けの検索ソリューションを容易に設定、管理、拡張縮小できます。

 Amazon CloudSearch を使用して、ウェブページ、ドキュメントファイル、フォーラムの投稿、製品情報など大規模なデータコレクションを検索できます。検索機能を迅速に追加できます。検索の高度な知識を習得したり、ハードウェアの準備、設定、およびメンテナンスについて考える必要はありません。データやトラフィックの変動に伴い、Amazon CloudSearch はニーズに合わせてシームレスにスケーリングします。

**注記**  
このドキュメントでは、Amazon CloudSearch 2013-01-01 API について説明しています。2011-02-01 の検索ドメインがある場合は、以前のドキュメントを参照する必要があります。[「2011-02-01 デベロッパーガイド」](https://s3.amazonaws.com/awsdocs/cloudsearch/2011-02-01/cloudsearch-dg-2011-02-01.pdf)の PDF をダウンロードできます。

Amazon CloudSearch を使用して、構造化データとプレーンテキストの両方のインデックスを作成して検索できます。​ の機能に以下が含まれます。Amazon CloudSearch の機能:
+ 言語固有のテキスト処理による全文検索
+ ブール型検索
+ プレフィックス検索
+ 範囲の検索
+ 用語の増強
+ ファセット
+ 強調表示
+ オートコンプリート候補

JSON または XML 形式での検索結果の取得、フィールド値に基づく結果のソートやフィルタリング、およびアルファベット順、数値順、またはカスタム式による結果のソートを行うことができます。

 Amazon CloudSearch で検索ソリューションを構築するには、次のステップに従います。
+ **検索ドメインを作成して設定します。**検索ドメインには、検索可能なデータと、検索リクエストを処理する検索インスタンスが含まれます。検索可能にするデータのコレクションが複数ある場合は、複数の検索ドメインを作成できます。
+ **検索するデータをドメインにアップロードします。**Amazon CloudSearch は、未加工インデックスを作成し、1 つ以上の検索インスタンスに検索インデックスをデプロイします。
+ **ドメインを検索します。**HTTP/HTTPS の GET リクエストとして、ドメインの検索エンドポイントに検索リクエストを送信します。

**Topics**
+ [Amazon CloudSearch を初めて使用していますか？](#new-to-cloudsearch)
+ [検索の仕組み](how-search-works.md)
+ [Amazon CloudSearch での自動スケーリング](concepts-scaling.md)
+ [Amazon CloudSearch へのアクセス](#accessing-cloudsearch)
+ [よくある質問](#faq)

## Amazon CloudSearch を初めて使用していますか？
<a name="new-to-cloudsearch"></a>

Amazon CloudSearch の概要、サービスの特徴、および料金情報については、[Amazon CloudSearch の詳細ページ](https://aws.amazon.com/cloudsearch/)を参照してください。Amazon CloudSearch を使用する準備ができている場合は、「[Amazon CloudSearch の開始方法](getting-started.md)」から始めてください。

Amazon CloudSearch は AWS マネジメントコンソール、、AWS SDKs、または を介して操作できます AWS CLI。API リクエストを Amazon CloudSearch に直接送信することもできますが、SDKsと は必要に応じてリクエスト AWS CLI に自動的に署名し、他の AWS のサービスと組み合わせて Amazon CloudSearch ドメインとやり取りするための一元化されたツールを提供します。AWS SDK の詳細については、「[Amazon Web Services のツール](https://aws.amazon.com/tools/)」を参照してください。のインストールと使用の詳細については AWS CLI、 [AWS Command Line Interface ユーザーガイド](https://docs.aws.amazon.com/cli/latest/userguide/)を参照してください。

検索ドメインの設定と管理、Amazon CloudSearch へのデータの送信、検索リクエストの送信、レスポンスの処理の詳細については、以下のトピックを参照してください。
+ [データの準備](preparing-data.md) — インデックス作成のために Amazon CloudSearch ドメインにアップロードできるように、データを準備します。
+ [インデックスフィールドの設定](configuring-index-fields.md) — Amazon CloudSearch ドメインのインデックスオプションを設定する方法を示します。
+ [Amazon CloudSearch でのデータの検索](searching.md) — Amazon CloudSearch クエリ言語を使用する方法を示します。
+ [検索結果の制御](controlling-search-results.md) — 検索結果のソート、フィルタ、ページ分割の方法を示します。

# 検索の仕組み
<a name="how-search-works"></a>

検索するデータのコレクション (*コーパス*とも呼ばれる) は、構造化されていないフルテキストドキュメント、XML などのマークアップ言語で形式が設定されているドキュメントなどの半構造化ドキュメント、または厳密なデータモデルに準拠する構造化データで構成されている場合があります。検索できるようにする各項目 (フォーラムの投稿やウェブページなど) は、ドキュメントとして表されます。各ドキュメントには、一意の ID と、検索して結果に含めるデータが含まれるフィールドが 1 つ以上あります。

データを検索可能にするには、JSON や XML 形式のドキュメントのバッチとしてデータを表し、検索ドメインにバッチをアップロードします。Amazon CloudSearch は、ドメインの設定オプションに従って、ドキュメントデータから検索インデックスを生成します。このインデックスに対してクエリを送信し、特定の検索条件を満たすドキュメントを見つけます。

データが変更されたら、更新を送信して、インデックスのドキュメントを追加、変更、または削除します。更新は受信された順序で継続的に適用されます。

データの形式を設定する方法については、「[データの準備](preparing-data.md)」を参照してください。

## Amazon CloudSearch でのインデックス作成
<a name="concepts-indexing"></a>

データから検索インデックスを構築するために、Amazon CloudSearch では以下の情報が必要になります。
+ どのドキュメントフィールドを検索する必要があるか。
+ どのドキュメントフィールドの値を検索結果で取得する必要があるか。
+ 検索結果を調整およびフィルタするために使用するカテゴリを表しているドキュメントフィールドはどれか。
+ 特定のフィールド内のテキストをどのように処理する必要があるか。

インデックス作成オプションを設定することにより、ドメインの設定でこのメタデータを定義します。インデックス作成オプションを使用して、検索インデックスに含まれるフィールドを指定し、これらのフィールドを使用する方法を制御します。

データ内で発生するドキュメントフィールドごとに、対応するインデックスフィールドを設定する必要があります。ドキュメントフィールドと Amazon CloudSearch インデックスのフィールド間には 1 対 1 のマッピングがあります。インデックスフィールド名に加えて、以下の項目を指定します。
+ インデックスフィールドの型
+ フィールドが検索可能かどうか (`text` および `text-array` フィールドは常に検索可能です)
+ フィールドがカテゴリ (ファセット) として使用できるかどうか
+ フィールド値を検索結果で返すことができるかどうか
+ フィールドを使用して結果をソートできるかどうか
+ フィールドにハイライトを返すことができるか
+ ドキュメントデータで値が指定されていない場合に使用するデフォルト値

Amazon CloudSearch のインデックスフィールドを設定する方法については、「[インデックスフィールドの設定](configuring-index-fields.md)」を参照してください。

## Amazon CloudSearch のファセット
<a name="concepts-facets"></a>

ファセットとは、検索結果の絞り込みとフィルタ処理を行うために使用するカテゴリを表すインデックスフィールドです。Amazon CloudSearch に検索リクエストを送信すると、ファセット情報をリクエストして、特定のフィールドで同じ値を共有するドキュメントの数を調べることができます。この情報を検索結果と共に表示して、ユーザーはそれを利用して対話的に検索結果を絞り込むことができます。(これは多くの場合、ファセットナビゲーションまたはファセット検索と呼ばれます)。

ファセットには、ドメイン設定でファセットが有効になっている日付、リテラル、または数値フィールドを指定できます。Amazon CloudSearch は、ファセットごとに、同じ値を共有するヒット数を計算します。バケットを定義して、ファセット値の特定のサブセットのファセット数を計算できます。一致するバケットのみがファセット結果に含まれます。

ファセットの設定については、「[インデックスフィールドの設定](configuring-index-fields.md)」を参照してください。ファセット情報を使用してファセットナビゲーションをサポートする方法については、「[Amazon CloudSearch でファセット情報を取得して使用](faceting.md)」を参照してください。

## Amazon CloudSearch でのテキスト処理
<a name="concepts-text-processing"></a>

インデックス作成時に、Amazon CloudSearch は、フィールドに設定されている言語固有の分析スキームに従って、`text` および `text-array`フィールドの内容を処理します。分析スキームによって、テキストの正規化、トークン分割、およびステミングの方法を制御し、インデックス作成時に考慮するストップワードやシノニムを指定します。Amazon CloudSearch は、サポートされている言語ごとにデフォルトの分析スキームを提供します。カスタム分析スキームの設定については、「[分析スキームの設定](configuring-analysis-schemes.md)」を参照してください。Amazon CloudSearch によるテキストの正規化とトークン分割の方法、テキストフィールドのインデックス作成時や検索結果の処理中に設定されたテキストオプションを適用する方法については、「[Amazon CloudSearch でのテキスト処理](text-processing.md)」を参照してください。

## Amazon CloudSearch での結果のソート
<a name="concepts-result-ranking"></a>

検索条件に一致する各ドキュメントについてカスタム値を計算する式を定義することにより、検索結果をランク付けする方法をカスタマイズできます。例えば、Amazon CloudSearch によって計算されるデフォルトの関連性スコアに加えて、ドキュメントの `popularity` フィールドの値を考慮する式を定義できます。式は、標準的な数値演算子および関数を使用する単なる数式です。式では、`int` フィールドや `double` フィールド、他の式、ドキュメントの関連性スコア (\$1score)、およびエポック時間 (\$1time) を参照できます。検索リクエストを送信するときに、検索結果のソートに使用する式を指定します。検索条件内で式を参照することもできます。

ドキュメントの関連性 `_score` は、特定の検索ヒットが検索リクエストに対してどれくらい関連しているかを示します。関連性スコアを計算するために、Amazon CloudSearch では、検索用語がドキュメント内に何回出現するかを考慮し、インデックス内の他のドキュメントと比較します。

ドメインで使用する式を設定する方法については、「[式の設定](configuring-expressions.md)」を参照してください。

## Amazon CloudSearch での検索リクエスト
<a name="concepts-searches"></a>

HTTP/HTTPS の GET リクエストとして、ドメインの検索エンドポイントに検索リクエストを送信します。さまざまなオプションを指定することによって、検索の制約、ファセット情報のリクエスト、ランク付けの制御、結果で返される内容の指定を行うことができます。JSON 形式または XML 形式で検索結果を取得できます。デフォルトでは、Amazon CloudSearch は JSON 形式で結果を返します。

検索リクエストを送信すると、Amazon CloudSearch は検索文字列のテキスト処理を実行します。検索文字列は、以下の目的で処理されます。
+ すべての文字を小文字に変換する
+ 空白および句読点の境界で、文字列を個別の用語に分割する 
+ 検索対象のフィールドについて、ストップワードリストにある用語を削除する
+ 検索対象のフィールドについて設定されたステミングおよびシノニムのオプションに従って、ステミングとシノニムをマッピングする

この事前処理が完了すると、Amazon CloudSearch はインデックス内で検索用語を調べ、リクエストに一致するすべてドキュメントを識別します。レスポンスを生成するために、Amazon CloudSearch はこの検索ヒットのリストを処理して、一致するドキュメントのフィルタとソートを行い、ファセットを計算します。Amazon CloudSearch は、JSON 形式または XML 形式でレスポンスを返します。

デフォルトでは、Amazon CloudSearch は、ヒットの関連性 \$1scores に従ってランク付けの結果を取得します。また、リクエストで、ヒットをソートするために使用するインデックスフィールドまたは式を指定できます。例えば、料金を含んでいるインデックスフィールドや、人気を計算する式によって、ヒットをソートできます。

結果の検索、ランク付け、およびページ分割の詳細については、「[Amazon CloudSearch でのデータの検索](searching.md)」を参照してください。

# Amazon CloudSearch での自動スケーリング
<a name="concepts-scaling"></a>

検索ドメインには 1 つ以上の検索インスタンスがあり、各インスタンスは、データのインデックス作成およびリクエストの処理のために限定された RAM リソースと CPU リソースを使用します。ドメイン内で必要な検索インスタンスの数は、コレクション内のドキュメントおよび検索リクエストのボリュームと複雑さによって異なります。

Amazon CloudSearch は、低レイテンシー、高スループットの検索パフォーマンスを提供するのに必要な検索インスタンスのサイズと数を決定します。データをアップロードしてインデックスを設定すると、Amazon CloudSearch はインデックスを構築し、適切な初期検索インスタンスタイプを選択します。検索ドメインを使用するときに、Amazon CloudSearch はドメインにアップロードされたデータのボリュームと、検索リクエストのボリュームと複雑さに対応できるようにスケールします。

検索ドメインを作成するとき、1 つのインスタンスがドメイン用にデプロイされます。次の図に示すように、ドメインには常に少なくとも 1 つのインスタンスがあります。Amazon CloudSearch は、データやトラフィックのボリュームが増加すると、インスタンスを追加してドメインを自動的にスケールします。

![\[データとトラフィックに合わせたスケーリング\]](http://docs.aws.amazon.com/ja_jp/cloudsearch/latest/developerguide/images/cloudsearch-scaling-diagram.png)


## データに合わせたスケーリング
<a name="w2aab5c31c13"></a>

ドメインに追加するデータのボリュームが最初の検索インスタンスタイプの容量を超えると、Amazon CloudSearch はより大きいインスタンスタイプに検索ドメインをスケーリングします。ドメインが最大検索インスタンスタイプの容量を超えると、Amazon CloudSearch は複数の検索インスタンスに検索インデックスを分割します (インデックスパーティションを保持するために必要な検索インスタンスの数は、ドメインの*幅*と呼ばれることもあります)。

ドメイン内のデータのボリュームが減少したときには、Amazon CloudSearch はドメインを縮小し、検索インスタンスを少なくするか、より小さい検索インスタンスタイプにして、コストを最小限に抑えます。

**注記**  
インデックスサイズに合わせてドメインがスケールアップされ、多数のドキュメントを削除すると、次に完全なインデックスを再構築したときにドメインが縮小されます。インデックスは定期的に自動再構築されますが、できるだけ迅速にスケールダウンするには、キュメントの削除が完了したら、明示的に[インデックス作成を実行](indexing.md)してください。

## トラフィックに合わせたスケーリング
<a name="w2aab5c31c15"></a>

検索リクエストのボリュームや複雑さが増すと、負荷を処理するためにより多くの処理能力が必要になります。ドキュメントのアップロードのボリュームが増加すると、ドメインの検索インスタンスの負荷も増加します。検索インスタンスが最大負荷に達すると、Amazon CloudSearch は追加の処理能力を提供するために重複した検索インスタンスをデプロイします (重複した検索インスタンスの数は、ドメインの*深さ*と呼ばれることもあります)。

トラフィックが減少した場合、Amazon CloudSearch は検索インスタンスを削除してコストを最小限に抑えます。例えば、新規ドメインの場合、ドキュメントの最初の急激な増加を処理するために拡張し、データのアップロードが終了して更新の送信のみになったときには再び縮小することができます。

ドメインでトラフィックの急上昇が発生した場合、Amazon CloudSearch は追加の検索インスタンスをデプロイします。ただし、新しいインスタンスをセットアップするには数分かかるため、新しいインスタンスがリクエストの処理を開始するまで、5xx エラーが増加する場合があります。5xx エラー処理の詳細については、「[エラー処理](error-handling.md)」を参照してください。

検索リクエストのタイプと複雑さは全体的な検索パフォーマンスに影響し、場合によっては、ドメインを運用するのに必要な検索インスタンスの数を増大することに注意してください。小さなまたは単一ドキュメントバッチを大量に送信すると、検索ドメインのパフォーマンスに影響を与えることができます。詳細については、「[Amazon CloudSearch での検索リクエストのパフォーマンスのチューニング](tuning-search.md)」を参照してください。

## Amazon CloudSearch へのアクセス
<a name="accessing-cloudsearch"></a>

Amazon CloudSearch にアクセスするには、Amazon CloudSearch コンソール、AWS SDK、または AWS CLIを使用します。
+ [Amazon CloudSearch コンソール](https://console.aws.amazon.com/cloudsearch/home?region=us-west-2)を使用すると、簡単に検索ドメインを作成、設定、モニタリングし、ドキュメントのアップロード、およびテスト検索を実行できます。コンソールを使用すると最も簡単に Amazon CloudSearch を使い始めることができます。さらにコンソールは、検索ドメインを継続的に管理するための一元化されたコマンドセンターを提供します。
+ [AWS SDK](https://aws.amazon.com/code) は、すべての Amazon CloudSearch API オペレーションをサポートしているため、ユーザーは希望するテクノロジーを使用して検索ドメインを簡単に管理し、対話することができます。SDK は、AWS の認証情報を使用して必要に応じて自動的にリクエストに署名します。
+ [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/) はすべての Amazon CloudSearch API オペレーションをラップして、検索ドメインの作成と設定、検索するデータのアップロード、および検索リクエストの送信のためのシンプルな方法を提供します。は、AWS 認証情報を使用して、必要に応じてリクエスト AWS CLI に自動的に署名します。

### Amazon CloudSearch のリージョンとエンドポイント
<a name="endpoints"></a>

 Amazon CloudSearch では、設定サービスにアクセスするためのリージョンのエンドポイントと、ドキュメントサービスや検索サービスにアクセスするためのドメイン固有のエンドポイントを提供します。

検索ドメインを作成して管理するには、設定サービスを使用します。リージョン固有の設定サービスエンドポイントの形式は、`cloudsearch.region.amazonaws.com` のようになります。例えば、`cloudsearch.us-east-1.amazonaws.com` です。サポートされているリージョンのリストについては、 AWS 全般のリファレンスの「[リージョンとエンドポイント](https://docs.aws.amazon.com/general/latest/gr/rande.html#cloudsearch_region)」を参照してください。

 Amazon CloudSearch の検索サービスとドキュメント サービスにアクセスするには、別のドメイン固有のサービスエンドポイントを使用します。
+ `http://doc-domainname-domainid.us-east-1.cloudsearch.amazonaws.com` — ドキュメントをアップロードするには、ドメインのドキュメントサービスエンドポイントを使用します。
+ `http://search-domainname-domainid.us-east-1.cloudsearch.amazonaws.com` — 検索リクエストを送信するには、ドメインの検索エンドポイントを使用します。

### Amazon CloudSearch リクエストの署名
<a name="signing-requests"></a>

使用する言語の SDK が AWS に用意されている場合は、その SDK を使用して Amazon CloudSearch リクエストを送信することをお勧めします。AWS SDK を使用する方が、Amazon CloudSearch API を直接使用するよりも、リクエストの署名プロセスがきわめてシンプルで、大幅な時間の節約になります。SDK は開発環境と容易に統合されるため、関連するコマンドへのアクセスが簡単です。また、Amazon CloudSearch コンソールと AWS CLI を使用して、追加作業なしで署名されたリクエストを送信することもできます。

Amazon CloudSearch API を直接呼び出す場合は、自分のリクエストに署名する必要があります。設定サービスのリクエストには常に署名が必要です。アップロード、検索、提案リクエストは、これらのサービスに対する匿名アクセスを設定していない限り、署名されている必要があります。リクエストに署名するには、暗号化ハッシュ関数を使用してデジタル署名を計算します。この関数は入力に基づいてハッシュ値を返します。入力には、リクエストのテキスト、およびシークレットアクセスキーが含まれます。ハッシュ関数から返されるハッシュ値をリクエストに署名として含めます。署名は、リクエストの認可ヘッダーの一部です。Amazon CloudSearch は、リクエストを受け取ると、リクエストの署名に使用されたものと同じハッシュ関数と入力を使用して署名を再計算します。再計算された署名とリクエスト内の署名が一致した場合、Amazon CloudSearch はリクエストを処理します。それ以外の場合、リクエストは拒否されます。

Amazon CloudSearch は、AWS 署名バージョン 4 を使用した認証をサポートします。詳細については、「[Signature Version 4 の署名プロセス](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html)」を参照してください。

## よくある質問
<a name="faq"></a>

「現在のお客様」のカットオフポイントは何ですか?

Amazon CloudSearch を既に使用しているアカウント IDsの許可リストを作成しました。ただし、以前に Amazon CloudSearch を使用していたお客様の新しいアカウントはすべて許可リストに登録されます。問題が発生した場合は、サポートチケットを送信してください。

サービスへの「アクセス」とはどういう意味ですか?

現在のお客様は、これまでできることは何でもできます。唯一の変更は、現在の顧客以外が Amazon CloudSearch にアクセスできないことです。

既存の Amazon CloudSearch のお客様はalreadyAmazon CloudSearch だった場合、新しいリポジトリを作成できますか?

はい。問題が発生した場合は、サポートチケットを送信してください。