すべてのプロダクト
Search
ドキュメントセンター

Tablestore:検索インデックスの構成を更新する

最終更新日:Dec 28, 2024

検索インデックスを作成した後、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 を変更するときに「[table ttl] must be bigger than or equal search index ttl」というエラーメッセージが返された場合はどうすればよいですか?

参照