我们现在在做一个类似酒店搜索的服务,但是会遇到很多奇怪的数据组合,全显示出来就会冗余,通过经纬度进行聚合又会出现把两个不同的酒店合在一起的case,各位大佬有没啥建议?
#同店,不同名字,同一个地址,同经纬度
[
{
经纬度略
"name": "汉庭上海美兰湖酒店",
"address": "上海宝山区沪太路6497号"
},
{
经纬度略
"name": "汉庭酒店上海 美兰湖店",
"address": "上海宝山区沪太路6497号"
}
]
#不同店,相同名字,不同地址,不同经纬度
[
{
经纬度略
"name": "汉庭精品酒店",
"address": "上海宝山区XX号"
},
{
经纬度略
"name": "汉庭精品酒店",
"address": "上海长宁区XX号"
}
]
#不同店,不同名字,相同地址(楼上楼下),相同经纬度
[
{
经纬度略
"name": "春红旅馆",
"address": "上海宝山区XX路1号1楼"
},
{
经纬度略
"name": "老赵旅社",
"address": "上海宝山区XX路1号4楼"
}
]
……
#同店,不同名字,同一个地址,同经纬度
[
{
经纬度略
"name": "汉庭上海美兰湖酒店",
"address": "上海宝山区沪太路6497号"
},
{
经纬度略
"name": "汉庭酒店上海 美兰湖店",
"address": "上海宝山区沪太路6497号"
}
]
#不同店,相同名字,不同地址,不同经纬度
[
{
经纬度略
"name": "汉庭精品酒店",
"address": "上海宝山区XX号"
},
{
经纬度略
"name": "汉庭精品酒店",
"address": "上海长宁区XX号"
}
]
#不同店,不同名字,相同地址(楼上楼下),相同经纬度
[
{
经纬度略
"name": "春红旅馆",
"address": "上海宝山区XX路1号1楼"
},
{
经纬度略
"name": "老赵旅社",
"address": "上海宝山区XX路1号4楼"
}
]
……
1 个回复
rochy - rochy_he
赞同来自:
按照经纬度对结果进行聚合,
然后再经纬度聚合中加一个topHits子聚合;
最后取子聚合的内容,并按照得分排序即可。