如何在elasticsearch中为给定查询按字段获取不同的结果?

时间:2013-06-18 20:20:28

标签: lucene duplicates elasticsearch

我有以下问题,我有一个文件有一个字段'xxx',它可能在整个索引中有重复值, 我想做一个非常简单的事情,我希望能够在我所有其他字段上使用bool查询查询索引,

但是查询的结果应该只返回基于xxx的不同结果,我的索引模拟人,而住在同一个房子里的人是重复的。我想在我的结果中只有不同的房子,但搜索是在所有房子里进行的

我事先知道重复,因为这是一次性索引工作,我是否可以在弹性搜索中启用此功能,我正在阅读并且我知道弹性或lucene中不存在盒子 我要求一些关于如何实现这一点的高级想法,包括一些聪明的索引,因为我有完全的控制权,我也提前知道重复项

我有两种情况: 1.我想要计算给定查询的结果 - 需要非常快 2.我想检索实际文件 - 性能无关紧要

1 个答案:

答案 0 :(得分:0)

我知道弹性搜索不支持分组。请参阅this主题。但我认为玩具可以利用ElasticSearch提供的亲子支持。你的房子是父母,居民是孩子。

因此,您的索引,房屋和居民将有两种类型。常驻映射将具有以下内容:

"resident" : {
    "_parent" : {
        "type" : "house"
    }
}

通过这种方式,您可以防止重复,您可以获得不同的结果(房屋),您可以搜索所有房屋。