完全一致検索は、フィールド値が指定されたキーワードと完全に一致する行を返します。キーワードは分析されず、Tablestore はインデックス済みの値に対してそのまま比較を行います。TEXT 列の場合、Tablestore はその列内の各トークンに対してキーワードを照合し、いずれかのトークンがキーワードと一致すれば、その行はマッチします。
前提条件
-
OTSClient インスタンスが初期化されていること。詳細については、「OTSClient インスタンスの初期化」をご参照ください。
-
データテーブルが作成されます。データがテーブルに書き込まれます。詳細については、「データテーブルを作成する」および「データを書き込む」をご参照ください。
-
データテーブルに対して多次元インデックスが作成されていること。詳細については、「多次元インデックスの作成」をご参照ください。
警告: 元の文字列全体をマッチさせたい場合は、TEXT 列に対して完全一致検索を使用しないでください。Tablestore はインデックス時に TEXT 列の値をトークン化するため、格納されるトークンが元の文字列と一致しない可能性があります。TEXT 列の全文内容でクエリを実行する場合は、代わりに一致検索を使用してください。
パラメーター
|
パラメーター |
説明 |
|
table_name |
データテーブルの名前。 |
|
index_name |
検索インデックスの名前です。 |
|
offset |
現在のクエリにおける結果セット内の開始位置。 |
|
limit |
返される行の最大数。行データを返さずに件数のみを取得する場合は、この値を 0 に設定します。 |
|
get_total_count |
クエリにマッチする行の総数を返すかどうかを指定します。デフォルト値は false です。 true を設定すると、クエリのパフォーマンスが低下します。 |
|
query_type |
クエリの種類。完全一致検索を行う場合は、 |
|
field_name |
クエリ対象のフィールド名。 |
|
term |
フィールド値と照合するキーワード。このキーワードはトークン化されず、Tablestore はそのまま比較に使用します。 TEXT 列の場合、Tablestore はインデックス時に列の値をトークン化し、いずれかのトークンがキーワードと完全に一致するかどうかをチェックします。たとえば、TEXT 値 |
|
sort |
返される行のソート順。詳細については、「ソートとページング」をご参照ください。 |
|
columns_to_get |
マッチした各行に対して返すカラムを指定します。このパラメーターには return_type および return_names を設定します。
|
使用例
次の例では、keyword 列の値がキーワード "keyword" と完全に一致するすべての行をクエリします。
$request = array(
'table_name' => 'php_sdk_test',
'index_name' => 'php_sdk_test_search_index',
'search_query' => array(
'offset' => 0,
'limit' => 2,
'get_total_count' => true,
'query' => array(
'query_type' => QueryTypeConst::TERM_QUERY,
'query' => array(
'field_name' => 'keyword',
'term' => 'keyword'
)
),
'sort' => array(
array(
'field_sort' => array(
'field_name' => 'keyword',
'order' => SortOrderConst::SORT_ORDER_ASC
)
),
)
),
'columns_to_get' => array(
'return_type' => ColumnReturnTypeConst::RETURN_ALL,
'return_names' => array('keyword', 'long')
)
);
$response = $otsClient->search($request);
よくある質問
参考資料
多次元インデックスを使用してデータをクエリする際は、以下のクエリ方法を利用できます:完全一致検索、複数値完全一致検索、完全一致検索、一致検索、フレーズ一致検索、プレフィックス検索、範囲クエリ、ワイルドカード検索、ブール値クエリ、ジオクエリ、ネストされたクエリ、およびexists クエリ。ビジネス要件に応じて、さまざまなクエリ方法を組み合わせて多角的にデータをクエリできます。
クエリ条件を満たす行をソートまたはページングしたい場合は、ソートとページング機能を使用できます。詳細については、「ソートとページング」をご参照ください。
特定のカラムに基づいて結果セットを折りたたみたい場合は、折りたたみ (distinct) 機能を使用できます。これにより、指定されたタイプのデータがクエリ結果に一度だけ表示されます。詳細については、「折りたたみ (distinct)」をご参照ください。
データテーブル内のデータを分析したい場合(たとえば、最大値・最小値・合計値・行数の取得など)、集約操作または SQL ステートメントを実行できます。詳細については、「集約」および「SQL クエリ」をご参照ください。
行をソートする必要がなく、クエリ条件を満たすすべての行を迅速に取得したい場合は、ParallelScan 操作および ComputeSplits 操作を呼び出して並列スキャン機能を使用できます。詳細については、「並列スキャン」をご参照ください。