Solr SpatialSearch文档提示您可以将空间函数geodist()
与常规查询结合起来,但我无法确定这样做的正确语法。
特别是这条线(在 geodist 部分)引起了我的注意:
或者您可以使用距离函数作为主要查询(或它的一部分)来获取作为文档分数的距离:
...&q={!func}geodist()&sfield=store&pt=45.15,-93.85&sort=score asc
按照该页面上的商店库存示例,我想做的是“找到给定城市内或城市给定距离内的所有商店”。我可以很容易地分别完成两者,但很难将它们结合起来。
这是一个伪查询,有望阐明我正在尝试做的事情:
...&q=storecity:Buffalo OR {!func}geodist(store,45.15,-93.8)&d=5
预期结果将是布法罗的每家商店,或布法罗 5 公里范围内的商店。该用例适用于非常大的城市,例如洛杉矶。如果我说洛杉矶 5 公里内的所有商店,它只会找到坐标 5 公里内的商店,所以寻找带有 a 的商店storecity:"Los Angeles"
将包括丢失的结果。
对于奖励积分,我也很好奇我将如何得分以确保城市内的商店排名高于外面的商店 - 但这是次要的,可能我能弄清楚:)