我对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作为此索引。也许这对解决问题很重要。
答案 0 :(得分:0)
如果这是活动索引并且有一些客户端写入它,那么大多数可能的rootcase是长索引刷新(这对于大型索引来说是经常使用的优化)。在计数之前尝试执行refresh query。但要注意,对于高负荷指数而言,它可能有点贵。