弹性搜索的id查询的重复id

时间:2016-04-25 18:09:17

标签: elasticsearch

当我测试弹性搜索的id查询如下,而不是得到5个结果,我得到3个独特的结果,因为我们有3个相同" 930147044672688594"。

有没有任何解决方案我可以得到5个结果,即使我有重复的ID?

{
"query": {
        "ids": {
            "values": ["939335337147845048", "931522394912682989", "930147044672688594","930147044672688594","930147044672688594"]
        }
}}

1 个答案:

答案 0 :(得分:1)

不,那是不可能的,因为你只有"只有"索引中包含这三种不同ID的三个文档。 ES不会编造人工文件。

正如您在IdsQueryBuilder的源代码中所看到的,ids列表内部是一个Set,这意味着每个元素都是唯一的。因此,在执行之前,您的三个重复ID实际上已转换为一组三个唯一ID ["939335337147845048", "931522394912682989", "930147044672688594"]