使用 orderby 将地理距离纳入搜索结果的策略
Strategy for incorporating geo distance into search results using orderby
我创建了 "locations" 的 Azure 索引,每个索引都有名称、地址、geography::POINT 等
此索引链接到我们在 Google 地图中使用的 Azure 搜索。使用地图的当前位置,我尝试了 Azure 搜索的 geo.distance 功能。
理想情况下,我们可以在用户搜索的位置与返回位置的接近程度之间取得平衡。
示例:我搜索麦当劳,结果根据最近的麦当劳排序。
我的理解是我需要使用$orderby=geo.distance[...],但我不希望距离成为决定结果的唯一因素。现在,如果我搜索 "McDonald's" 并传递附近另一个位置(比如肯德基)的 longitude/latitude,第一个结果将是肯德基而不是麦当劳。
我是否需要设置评分资料,或者是否缺少一些 ordeby/filter 技巧?
如果您希望考虑多个相关因素(例如文本相关性、距离、新鲜度等),那么设置评分配置文件是可行的方法。
虽然您可以 orderby
多个字段,但这可能不是您想要的。
有关使用评分配置文件的详细信息,请参阅Azure Search scoring profiles reference。
我创建了 "locations" 的 Azure 索引,每个索引都有名称、地址、geography::POINT 等
此索引链接到我们在 Google 地图中使用的 Azure 搜索。使用地图的当前位置,我尝试了 Azure 搜索的 geo.distance 功能。
理想情况下,我们可以在用户搜索的位置与返回位置的接近程度之间取得平衡。 示例:我搜索麦当劳,结果根据最近的麦当劳排序。
我的理解是我需要使用$orderby=geo.distance[...],但我不希望距离成为决定结果的唯一因素。现在,如果我搜索 "McDonald's" 并传递附近另一个位置(比如肯德基)的 longitude/latitude,第一个结果将是肯德基而不是麦当劳。
我是否需要设置评分资料,或者是否缺少一些 ordeby/filter 技巧?
如果您希望考虑多个相关因素(例如文本相关性、距离、新鲜度等),那么设置评分配置文件是可行的方法。
虽然您可以 orderby
多个字段,但这可能不是您想要的。
有关使用评分配置文件的详细信息,请参阅Azure Search scoring profiles reference。