2

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

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

我提前知道重复,因为这是一次性索引工作,我可以做些什么来在 elasticsearch 中启用此功能,我正在阅读,我知道开箱即用的弹性或 lucene 中不存在 distinct 我我要求一些关于如何实现这一点的高级想法,包括一些聪明的索引,因为我可以完全控制并且我也提前知道重复项

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

4

1 回答 1

0

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

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

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

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

于 2013-06-25T07:49:56.947 回答