如何等待 elasticsearch helpers.reindex 在 Python 完成?
How to wait for elasticsearch helpers.reindex to finish in Python?
我正在重新索引一个大索引,需要删除旧索引以便为新索引添加别名。
helpers.reindex(client=es, source_index=index_old, target_index=index_new, )
# those 2 need to run when reindex finishes
es.indices.delete(index=index_old)
es.indices.put_alias(index=index_new, name=index_old)
问题是最后2条命令需要等待重建索引完成,否则会删除原来的索引而无法工作。
我看到 elasticsearch 有 refresh=wait_for 但 python helpers.reindex.
什么方法可以使重建索引同步?
尝试将此 helpers.reindex(client=es, source_index=index_old, target_index=index_new, )
更改为此 helpers.reindex(client=es, source_index=index_old, target_index=index_new, bulk_kwargs={'wait_for_completion': True} )
未测试。
作为文档统计信息,helpers.reindex 已弃用,首选主要 API reindex。
reindex 方法包含 wait_for_completion
参数,默认情况下为 true,因此默认情况下 Elasticsearch().reindex(...)
是同步的。
我正在重新索引一个大索引,需要删除旧索引以便为新索引添加别名。
helpers.reindex(client=es, source_index=index_old, target_index=index_new, )
# those 2 need to run when reindex finishes
es.indices.delete(index=index_old)
es.indices.put_alias(index=index_new, name=index_old)
问题是最后2条命令需要等待重建索引完成,否则会删除原来的索引而无法工作。
我看到 elasticsearch 有 refresh=wait_for 但 python helpers.reindex.
什么方法可以使重建索引同步?
尝试将此 helpers.reindex(client=es, source_index=index_old, target_index=index_new, )
更改为此 helpers.reindex(client=es, source_index=index_old, target_index=index_new, bulk_kwargs={'wait_for_completion': True} )
未测试。
作为文档统计信息,helpers.reindex 已弃用,首选主要 API reindex。
reindex 方法包含
wait_for_completion
参数,默认情况下为 true,因此默认情况下Elasticsearch().reindex(...)
是同步的。