我对elasticsearch的行为无法理解(我使用elasticsearch 5.2)。我有约500万个文档的索引。我尝试搜索。例如,我使用以下查询:
{
"query": {
"match_all": {}
}
}
如果我多次执行查询,则会在hits.total中得到不同数量的文档。不同的是1个文档(我第一次有5032511文档,另一次是5032510)
同样的情况,如果我执行计数查询(第一次我有5032511个文档,另一个时间:5032510)
有人知道为什么会这样吗?当执行查询时,我需要做的是每次获得相同的计数?
附言我为此索引使用number_of_shards:5,number_of_replicas:1。也许这对解决问题很重要。
最佳答案
如果这是 Activity 索引,并且有一些客户在写它,则最可能的根本原因是长索引刷新(这是大型索引的常用优化方法)。尝试在计数之前执行refresh query。但要注意,对于高负荷索引而言,它可能会有些昂贵。
关于elasticsearch - Elasticsearch 相同查询的文档数量不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44407621/