在重新索引后对弹性索引进行搜索时是否存在不一致行为的原因?

Is there a reason there is inconsistent behavior when doing a search on an elastic index after it is reindexed?

我正在使用 elasticsearch python API 并且在对最近重新编制索引的索引进行搜索时,我看到一些行为,有时我会得到结果,有时却得不到结果吨。重现此行为的唯一方法是 运行 一遍又一遍地编写代码,直到失败,并看到相同的结果。

es.reindex({"source": {"index": "initial-index"},
            "dest": {"index": "dest-index"}
            }, 
    wait_for_completion=True, refresh=True)

dest_index_results = es.search(index="dest-index", size=100)
hits = get_hits(dest_index_results['hits']['hits'])

dest_index_resultshits 会变成空的。任何有助于理解原因的帮助将不胜感激。

索引设置中有一个名为 refresh_interval 的配置。根据您在此配置中设置的时间,可以搜索文档。例如,如果时间设置为 1 分钟,文档将在索引后一分钟准备好进行搜索。

您可以使用以下命令更改此设置;

PUT /twitter/_settings
{
    "index" : {
        "refresh_interval" : "10s"
    }
}