検索インデックスを作成した後、UpdateSearchIndex オペレーションを呼び出して、検索インデックスの構成を更新できます。このトピックでは、Go SDK for Tablestore を使用して検索インデックスの Time to Live(TTL)を更新する方法について説明します。
前提条件
OTSClient インスタンスが初期化されていること。詳細については、OTSClient インスタンスを初期化するを参照してください。
データテーブルに対して検索インデックスが作成されていること。
データテーブルの
AllowUpdate
パラメータがfalse
に設定されていること。詳細については、テーブルの構成を更新するを参照してください。
使用上の注意
検索インデックスの TTL は、検索インデックスが作成されたデータテーブルの TTL とは独立しており、データテーブルの TTL 以下である必要があります。検索インデックスと、検索インデックスが作成されたデータテーブルの TTL を短縮する場合は、データテーブルの TTL を変更する前に、検索インデックスの TTL を変更する必要があります。
Tablestore は、毎日、検索インデックスから期限切れのデータを自動的に削除します。期限切れのデータが削除されるまでは、検索インデックス内の期限切れのデータをクエリできます。Tablestore は、次のサイクルで期限切れのデータを自動的に削除します。
データテーブルと検索インデックスの TTL を変更した後、Tablestore は次のサイクルで、データテーブルと検索インデックスから履歴の期限切れデータを自動的に削除します。
パラメータ
パラメータ | 説明 |
TableName (必須) | データテーブルの名前。 |
IndexName (必須) | 検索インデックスの名前。 |
TimeToLive (必須) | 検索インデックスの TTL。 検索インデックスの TTL は、-1 または正の int32 値(秒単位)である必要があります。-1 の値は、検索インデックス内のデータが期限切れにならないことを指定し、int32 の最大値は約 68 年に相当します。 |
例
次のサンプルコードは、検索インデックスの TTL を 7 日間に変更する方法の例を示しています。
func updateIndexWithTTL(client *tablestore.TableStoreClient) {
request := &tablestore.UpdateSearchIndexRequest{}
request.TableName = "<TABLE_NMAE>"
request.IndexName = "<SAERCH_INDEX_NAME>"
request.TimeToLive = proto.Int32(3600 * 24 * 7) // 検索インデックスの TTL を 7 日間に設定します。
resp, err := client.UpdateSearchIndex(request)
if err != nil {
fmt.Println("error :", err)
return
}
fmt.Println("updateIndexWithTTL finished, requestId:", resp.ResponseInfo.RequestId)
}
FAQ
参照
検索インデックスの TTL については、検索インデックスの TTL を指定するを参照してください。
検索インデックスのフィールドやスキーマなど、検索インデックスに関する詳細情報をクエリできます。詳細については、検索インデックスの説明をクエリするを参照してください。
検索インデックスのスキーマを動的に変更して、検索インデックスにインデックス列を追加、更新、または削除したり、検索インデックスのルーティングキーと事前ソート方法を変更したりできます。詳細については、検索インデックスのスキーマを動的に変更するを参照してください。