两个点之间的solr距离和每个文档中距离小于英里的字段

时间:2017-03-22 14:07:16

标签: solr solrnet

这是空间搜索的一个反向概念,候选人决定他可以工作的距离。

我有一个候选人c1说他可以在距他所在地20英里的地方工作,而c2说他可以在离他所在地10英里的地方工作。如果我的搜索位置距离两个候选人都是10英里,我的结果应该列出候选人的距离并按距离排序。

我的想法是从搜索点到候选点获取距离,并检查距离是否符合每个候选人配置的里程。

我使用了q = {!func} geodist()和sort = score asc,现在我需要根据他的文档中配置的Miles进行过滤。 得分< = Miles应该用作过滤器。

你能帮助我解决它吗,这对我来说是一个很大的帮助。谢谢。

1 个答案:

答案 0 :(得分:0)

您需要为候选人编制索引,而不是使用某个点,而是使用圆圈(中心是他们的位置,半径是他们愿意旅行的距离)。

然后你用一个与任何圆相交的点来fq。请查看此问题中的详细信息:Solr spatial search using an indexed field for radius?