弹性搜索同一查询的文档计数不同

时间:2017-06-07 08:38:31

标签: elasticsearch

我对elasticsearch有不可理解的行为(我使用elasticsearch 5.2)。我有~5m文件的索引。我尝试搜索一些东西。例如,我使用此查询:

{
    "query": {
        "match_all": {}
    }
}

如果我多次执行查询,我会在hits.total中获得不同数量的文档。不同的是1个文件(我第一次有5032511个文档,另一个时间:5032510)

同样的情况,如果我执行计数查询(第一次我有5032511个文档,另一个时间:5032510)

有人知道为什么会这样吗?当我执行查询时,我每次都要做同样的计数?

P.S。我使用number_of_shards:5,number_of_replicas:1作为此索引。也许这对解决问题很重要。

1 个答案:

答案 0 :(得分:0)

如果这是活动索引并且有一些客户端写入它,那么大多数可能的rootcase是长索引刷新(这对于大型索引来说是经常使用的优化)。在计数之前尝试执行refresh query。但要注意,对于高负荷指数而言,它可能有点贵。