沙师弟,师父的充电器掉了

es对查询结果根据nested字段查重

Elasticsearch | 作者 poorandy | 发布于2020年10月30日 | 阅读数:2009

对查询结果根据多字段查重类似SQL
DISTINCT field1 field2 field3 nested_field1,nested_field2.inner_field1
其中包含对nested结构字段的查重和nested字段下的其中一个key的查重

另外查询的时候条件中限定了province = ‘beijing’ , 对结果根据city查重,由于用的是terms分组取tophits,可能会拿到city = ‘hangzhou’ 因为该nested的数据为:
[
{"province"="beijing","city"="beijing"},
{"province"="zhejiang","city"="hangzhou"}
]
query里面限制了province = beijing 但是匹配到的是整个document,对city分组的时候就会出现hangzhou在北京下的情况
有没有大佬指教怎么对查询结果根据nested结构和nested结构的某个key进行查重
已邀请:

JiangJibo - 喊我雷锋

赞同来自:

这种形式用nested不行,你需要用parent-child模型

God_lockin

赞同来自:

如果province不多,可以考虑must province = beijing,must_not province in [xx, xxx, xxx]

要回复问题请先登录注册