データテーブルを作成した後、Tablestore CLI を使用して、検索インデックスの作成、検索インデックスのリストの取得、検索インデックスに関する情報のクエリ、検索インデックスを使用したクエリ、および検索インデックスの削除を行うことができます。
検索インデックスの作成
検索インデックスを作成できます。
構文
create_search_index -n search_index_name
パラメータの説明:
パラメータ | 必須 | 例 | 説明 |
-i, --input | いいえ | /tmp/indexschema.json | 検索インデックススキーマの設定に使用する JSON ファイル。 |
-n, --name | はい | search_index | 検索インデックスの名前。 |
-t,--table | いいえ | mytable | データテーブルの名前。 |
--ttl | いいえ | -1 | データの保存期間。システムは、Time-to-live (TTL) メカニズムに基づいてデータを削除します。保存期間が TTL を超えると、Tablestore は期限切れのデータを自動的に削除します。デフォルト値:-1。単位:秒。 値 -1 は、データが期限切れにならないことを示します。データ TTL を指定する場合、値は 86400 秒(1 日)以上である必要があります。 重要 TTL 機能を使用するには、検索インデックスが作成されるデータテーブルの「更新を許可」を「いいえ」に設定する必要があります。検索インデックスの TTL 値は、検索インデックスが作成されるデータテーブルの TTL 値とは独立しており、それ以下である必要があります。詳細については、検索インデックスの TTL の指定を参照してください。 |
例
search_index という名前の検索インデックスを作成します。
create_search_index -n search_index
プロンプトが表示されたら、インデックススキーマを入力します。
{
"IndexSetting": {
"RoutingFields": null
},
"FieldSchemas": [
{
"FieldName": "gid",
"FieldType": "LONG",
"Index": true,
"EnableSortAndAgg": true,
"Store": true,
"IsArray": false,
"IsVirtualField": false
},
{
"FieldName": "uid",
"FieldType": "LONG",
"Index": true,
"EnableSortAndAgg": true,
"Store": true,
"IsArray": false,
"IsVirtualField": false
},
{
"FieldName": "col2",
"FieldType": "LONG",
"Index": true,
"EnableSortAndAgg": true,
"Store": true,
"IsArray": false,
"IsVirtualField": false
},
{
"FieldName": "col3",
"FieldType": "TEXT",
"Index": true,
"Analyzer": "single_word",
"AnalyzerParameter": {
"CaseSensitive": true,
"DelimitWord": null
},
"EnableSortAndAgg": false,
"Store": true,
"IsArray": false,
"IsVirtualField": false
},
{
"FieldName": "col1",
"FieldType": "KEYWORD",
"Index": true,
"EnableSortAndAgg": true,
"Store": true,
"IsArray": false,
"IsVirtualField": false
},
{
"FieldName": "col3V",
"FieldType": "LONG",
"Index": true,
"EnableSortAndAgg": true,
"Store": true,
"IsArray": false,
"IsVirtualField": true,
"SourceFieldNames": [
"col3"
]
}
]
}
次の表に、検索インデックススキーマのパラメータを示します。
パラメータ | 必須 | 説明 |
IndexSetting | いいえ | 検索インデックスの設定。次のパラメータが含まれます。 RoutingFields(オプション):カスタムルーティングフィールド。一部のプライマリキー列をルーティングフィールドとして指定できます。Tablestore は、指定されたルーティングフィールドに基づいて、検索インデックスに書き込まれたデータを異なるパーティションに分散します。ルーティングフィールド値が同じデータレコードは、同じパーティションに分散されます。 |
FieldSchemas | はい | フィールドスキーマのリスト。各フィールドスキーマには、次のパラメータを設定できます。
|
IndexSort | いいえ | 検索インデックスの事前ソート設定。Sorters パラメータが含まれます。IndexSort パラメータに値が指定されていない場合、フィールド値はデフォルトでプライマリキーに基づいてソートされます。 重要 Nested タイプのフィールドを含む検索インデックスの事前ソート設定はスキップできます。 Sorters(オプション):インデックス作成の事前ソート方法。Name パラメータと Sorter パラメータが含まれます。PrimaryKeySort メソッドと FieldSort メソッドを使用できます。詳細については、ソートとページングの実行を参照してください。
|
検索インデックスのリストの取得
現在のデータテーブルに作成されている検索インデックスのリストを取得できます。
構文
list_search_index
パラメータの説明:
パラメータ | 必須 | 例 | 説明 |
-a, --all | いいえ | 該当なし | すべてのデータテーブルの検索インデックスを表示することを指定します。 |
-d, --detail | いいえ | 該当なし | 検索インデックスの詳細を表示することを指定します。 |
-t,--table | いいえ | mytable | データテーブルの名前。 |
例
現在のデータテーブルの検索インデックスのリストを取得します。
list_search_index
結果の例:
+-----------+--------------+
| TableName | IndexName |
+-----------+--------------+
| mytable | search_index |
+-----------+--------------+
検索インデックスに関する情報のクエリ
検索インデックスに関する情報をクエリできます。
構文
describe_search_index -n search_index_name
パラメータの説明:
パラメータ | 必須 | 例 | 説明 |
-n, --name | はい | search_index | 検索インデックスの名前。 |
-o, --output | いいえ | /tmp/describeinfo.json | クエリ結果をコンピュータ上の JSON または TXT 形式のファイルにエクスポートします。 |
-t,--table | いいえ | mytable | データテーブルの名前。 |
例
search_index という名前の検索インデックスに関する情報をクエリします。
describe_search_index -n search_index
返された結果の Index schema
パラメータは検索インデックススキーマを表し、TimeToLive は検索インデックスのデータ保存期間を示します。
検索インデックスを使用したデータのクエリ
検索インデックスを使用して、指定された条件を満たすデータをクエリし、返された結果に対して集計操作を実行できます。
構文
search -n search_index_name --return_all_indexed
パラメータの説明:
パラメータ | 必須 | 例 | 説明 |
-c, --column | いいえ | col1,col2 | 返す列。複数の列はコンマ(,)で区切ります。 |
-n, --name | はい | search_index | 検索インデックスの名前。 |
-f, --print_format | いいえ | table | 出力結果を出力する形式。デフォルト値:table。 |
--return_all | いいえ | 該当なし | すべての列を返すことを指定します。 |
--return_all_indexed | いいえ | 該当なし | 検索インデックスでインデックスが作成されているすべての列を返すことを指定します。 |
-t,--table | いいえ | mytable | データテーブルの名前。 |
例
search_index という名前の検索インデックスを使用してデータをクエリし、インデックスが作成されているすべての列を返します。
search -n search_index --return_all_indexed
システムのプロンプトに従ってクエリ条件を入力します。
{
"Offset": -1,
"Limit": 10,
"Collapse": null,
"Sort": null,
"GetTotalCount": true,
"Token": null,
"Query": {
"Name": "BoolQuery",
"Query": {
"MinimumShouldMatch": null,
"MustQueries": null,
"MustNotQueries": null,
"FilterQueries": null,
"ShouldQueries": [{
"Name": "RangeQuery",
"Query": {
"FieldName": "gid",
"From": null,
"To": 10,
"IncludeLower": false,
"IncludeUpper": false
}
}, {
"Name": "TermQuery",
"Query": {
"FieldName": "gid",
"Term": "77"
}
}]
}
},
"Aggregations": [{
"Name": "avg",
"Aggregation": {
"AggName": "agg1",
"Field": "gid",
"MissingValue": null
}
}]
}
パラメータの説明:
パラメータ | 必須 | 説明 |
Offset | いいえ | 現在のクエリが開始される位置。 |
Limit | いいえ | 現在のクエリで返す最大行数。 現在のクエリで複数のランダムなデータ行を返す場合は、limit を正の整数に設定します。 特定のデータを返さずに、クエリ条件を満たす行数のみをクエリするには、limit を 0 に設定します。 |
Collapse | いいえ | collapse パラメータの設定。指定された列の結果セットを折りたたんで、指定されたタイプのデータが結果セットに 1 回だけ表示されるようにするために使用できます。これにより、結果セットの多様性が確保されます。詳細については、Collapse (distinct) を参照してください。 FieldName:結果セットの折りたたみの基準となる列の名前。値が INTEGER、FLOATING-POINT、KEYWORD データタイプの列のみがサポートされています。 |
Sort | いいえ | 結果のソート方法。詳細については、ソートとページングの「データのクエリ時にソート方法を指定する」セクションを参照してください。 クエリでソート方法が指定されていない場合、クエリ結果は事前ソート方法によって返されます。検索インデックスの作成時に事前ソート方法が指定されていない場合、クエリ結果はプライマリキーによってソートされます。 |
GetTotalCount | いいえ | クエリ条件を満たす行の総数を返すかどうかを指定します。このパラメータのデフォルト値は false で、クエリ条件を満たす行の総数が返されないことを示します。 このパラメータを true に設定すると、クエリのパフォーマンスが低下します。一致する行の総数を取得するには、GetTotalCount を true に設定します。 |
Token | いいえ | Tablestore がクエリ条件を満たすすべてのデータを読み取ることができない場合、Tablestore は Token を返します。Token 値を使用して、後続のデータの読み取りを続行できます。初めてデータを読み取る場合は、token 値を null に設定します。 |
Query | はい | クエリメソッド。すべて一致クエリ(MatchAllQuery)、一致クエリ(MatchQuery)、一致フレーズクエリ(MatchPhraseQuery)、用語クエリ(TermQuery)、用語クエリ(TermsQuery)、プレフィックスクエリ(PrefixQuery)などのクエリメソッドがサポートされています。詳細については、Tablestore SDK の使用を参照してください。 |
Aggregations | いいえ | 集計操作の設定。集計操作を実行して、行の最小値、最大値、合計、平均、カウント、個別カウントを取得できます。詳細については、集計を参照してください。
|
検索インデックスの削除
不要になった検索インデックスを削除できます。
構文
drop_search_index -n search_index_name -y
パラメータの説明:
パラメータ | 必須 | 例 | 説明 |
-n, --name | はい | search_index | 検索インデックスの名前。 |
-t,--table | いいえ | mytable | データテーブルの名前。 |
-y, --yes | はい | 該当なし | 確認情報が表示されることを指定します。このパラメータは必須です。 |
例
search_index という名前の検索インデックスを削除します。
drop_search_index -n search_index -y