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

标签 python list elasticsearch elasticsearch-dsl elasticsearch-py

我正在使用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分钟,则将在编制索引后1分钟准备好文档以供搜索。

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

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

关于python - 重新索引后对弹性索引进行搜索时,是否存在行为不一致的原因?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60341770/

相关文章:

c - 使链表更通用

python - sqlite3 fetchall 有必要吗?

python - TKinter GUI,如何使帧的大小正确?

javascript - 使用scrapy + splash返回html

c++ - std::list 与 std::vector 迭代

python - 如何从子字符串中获取列表中的索引值?

node.js - Elasticsearch _bulk 更新问题给出 VersionConflictEngineException 消息

elasticsearch - Elastic Search 创建索引时出错

elasticsearch - 如何为Logstash群集环境配置Filebeat?

python - 如何将多个变量存储在一个文件中,并从不同的文件访问这些变量?