如何在空间搜索和常规查询之间组合执行Solr OR查询



Solr SpatialSearch文档提示您可以将空间函数(如geodist())与常规查询相结合,但我一直无法确定这样做的正确语法。

特别是这一行(在地球学家部分)引起了我的注意:

或者您可以使用距离函数作为主查询(或其一部分)来获得距离作为文档分数:

&q={!func}地理学家()&sfield=store&pt=45.15,-93.85&sort=得分asc

根据该页面上的商店库存示例,我想做的是"查找给定城市内或距离该城市给定距离内的所有商店"。我可以很容易地分别完成这两项任务,但很难将它们结合起来。

以下是一个伪查询,有望澄清我要做的事情:

...&q=storecity:Buffalo OR {!func}geodist(store,45.15,-93.8)&d=5

预期的结果将是布法罗的每一家商店,或者距离布法罗5公里以内。用例适用于非常大的城市,例如洛杉矶。如果我说洛杉矶5公里以内的所有商店,它只会在坐标5公里以内找到商店,所以寻找storecity:"Los Angeles"的商店将包括丢失的结果。

对于奖励积分,我也很好奇我会如何得分,以确保城市内的商店排名高于外部商店——但这是次要的,很可能是我能弄清楚的:)

您可以使用以下查询来获得预期结果。

&q=店面:Buffalo OR_query_:"{!geofiltt sfield=location pt=45.15,-93.8 d=5}">

最新更新