我的文档架构如下所示:
{
"store_id": 123,
"franchise_id": 1,
"name": "test",
"location": "1.2,1.3"
}
我的用例围绕寻找商店。商店可以是特许经营的一部分,也可以是独立的(franchise_id = store_id)。因此,作为特许经营的一部分,可以有多个不同的商店,我使用 franchise_id 字段来识别商店属于特许经营权。
在搜索商店及其名称和用户位置时,我想根据特许经营权ID重复删除结果。
现在给定一个位置,它的距离范围和商店名称作为输入我想找到按franchise_id分组的商店,这样我就得到了
如果franchise_id
在此范围内没有商店,则为OR我已经尝试过关于聚合的阅读,但我无法弄清楚这一点。任何帮助将不胜感激。
答案 0 :(得分:0)
您可以使用franchise_id
聚合并在terms
聚合内,按top hits
对商店进行分组/重复数据删除。见https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-metrics-top-hits-aggregation.html