Tablestore SDK for Python を使用して、検索インデックスの Time to Live (TTL) を更新します。
前提条件
Tablestore SDK for Python をインストールし、クライアントを初期化しておきます。
このテーブルでは
UpdateRow操作は許可されていません。 つまり、allow_updateはFalseに設定されています。 詳細については、「テーブル設定の更新」をご参照ください。
説明
update_search_index を呼び出して、検索インデックスの TTL を更新します。
def update_search_index(
self,
table_name,
index_name,
index_meta,
)
TTL を設定する際は、次の点にご注意ください:
Python 版 Tablestore SDK の
update_search_indexメソッドで更新できるのは TTL のみです。インデックスフィールド、インデックス設定、または事前ソート設定を変更することはできません。テーブルと検索インデックスの TTL は独立していますが、検索インデックスの TTL がテーブルの TTL を超えることはできません。検索インデックスの TTL を現在のテーブルの TTL より長くするには、まずテーブルの TTL を長くする必要があります。テーブルの TTL を現在の検索インデックスの TTL より短くするには、まず検索インデックスの TTL を短くする必要があります。
Tablestore は、期限切れの検索インデックスデータを 1 日 1 回削除します。期限切れのデータは、次の削除サイクルまでクエリ可能な状態が続く場合があります。TTL を短縮すると、Tablestore は後続の削除サイクルで過去の期限切れデータを削除します。
次の例では、example_table の example_index の TTL を 7 日に更新し、更新後の値をクエリします。
index_meta = SearchIndexMeta(
fields=None,
time_to_live=7 * 24 * 60 * 60,
)
client.update_search_index(
"example_table",
"example_index",
index_meta,
)
updated_meta, _ = client.describe_search_index(
"example_table",
"example_index",
)
print(updated_meta.time_to_live)
パラメーター
update_search_index メソッドには、次のパラメーターが含まれています。
|
名前 |
型 |
説明 |
|
table_name (必須) |
|
テーブル名。 |
|
index_name (必須) |
|
検索インデックス名。 |
|
index_meta (必須) |
|
更新する検索インデックス設定。 |
検索インデックス設定
index_meta は、TTL の更新のための以下のパラメーターを含む SearchIndexMeta オブジェクトです。
|
名前 |
型 |
説明 |
|
fields (必須) |
|
このパラメーターを |
|
time_to_live (任意) |
|
秒単位でのインデックスデータの TTL (有効期間) です。デフォルト値は |
例
TTL の無効化
検索インデックス内のデータが期限切れにならないように、time_to_live を -1 に設定します。
index_meta = SearchIndexMeta(fields=None, time_to_live=-1)
client.update_search_index(
"example_table",
"example_index",
index_meta,
)