【问题标题】:How do I combine perform a Solr OR query between a spacial search and a regular query?如何在空间搜索和常规查询之间结合执行 Solr OR 查询?
【发布时间】:2012-12-06 21:17:05
【问题描述】:

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

特别是这一行 (in the geodist section) 引起了我的注意:

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

...&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 公里范围内的商店,因此查找带有 storecity:"Los Angeles" 的商店将包括丢失的结果。

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

【问题讨论】:

    标签: solr geocoding geospatial


    【解决方案1】:

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

    ..&q=storecity:Buffalo 或 _query_: "{!geofilt sfield=location pt=45.15,-93.8 d=5}"

    【讨论】:

    • 嗨,我也对这个“查找给定城市内的所有商店”感兴趣,我怎样才能用 Solr 做到这一点?这是否需要像反向地理编码这样的思考,以便为 Solr 提供城市?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-15
    • 2021-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-26
    相关资源
    最近更新 更多