gpt4 book ai didi

Solr 距离过滤

转载 作者:行者123 更新时间:2023-11-30 23:46:23 25 4
gpt4 key购买 nike

我正在尝试使用 Solr 进行距离范围搜索。

我知道在5公里范围内搜索过滤很容易&q=*:*&fq={!geofilt pt=45.15,-93.85 sfield=store d=5}

我所追求的是,​​如果我在5 到 10 公里 范围内寻找,如何做同样的事情??

谢谢

最佳答案

这里有几种方法可以解决这个问题。很明显,查询进入过滤器查询(“fq”参数),因为其目的不是修改分数。并假设这些参数是在请求 URL 中设置的(尽管它们不必放在那里):

pt=45.15,-93.85&sfield=store

这是一种方法:

_query_:"{!geofilt d=10}" -_query_:"{!geofilt d=5}"

我使用 _query_ Solr 语法 hack 来输入一个子查询,它提供了将查询解析器从 Lucene 切换到地理解析器的机会。

这是另一种可能最快的方法:

{!frange l=5 u=10}geodist()

这是一个函数查询,返回距离然后限制在所需范围内。它可能更快,因为它将对每个文档进行一次评估,而不是像以前那样评估两次。

您可能希望将其标记为 not cacheable并添加一个 bbox 过滤器,以便检查的每个文档都少得多。 这是最终结果(不是转义的 url):

pt=45.15,-93.85&sfield=store&fq={!frange l=5 u=10 cache=false cost=100}geodist()&fq={!bbox d=10}

关于Solr 距离过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10867113/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com