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

Posted

技术标签:

【中文标题】solr 两点之间的距离和每个文档中小于英里的距离字段【英文标题】:solr distance between two points and distance less than miles field in each document 【发布时间】:2017-03-22 14:07:15 【问题描述】:

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

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

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

我使用了 q=!funcgeodist() 和 sort=score asc,现在我需要根据他的文档中配置的 Miles 进行过滤。 score

你们能帮我解决一下吗,这对我很有帮助。谢谢。

【问题讨论】:

【参考方案1】:

你需要用一个圆而不是一个点来索引候选人(中心是他们的位置,半径是他们愿意走的距离)。

然后你 fq 与任何一个圆相交的点。在这个问题中寻找细节:Solr spatial search using an indexed field for radius?

【讨论】:

但数学上最简单的解决方案是找到两点之间的距离并检查距离是否小于配置的候选人的距离?这个解决方案的性能是否很低,我是 solr 的新手,所以想知道.. 我没有足够的声望来投票,请接受此评论作为我的投票,非常感谢您帮助我...... :) 我可以知道如何对搜索位置附近的人进行排序吗?这样我们就可以根据最近的位置来实现相关性。

以上是关于solr 两点之间的距离和每个文档中小于英里的距离字段的主要内容,如果未能解决你的问题,请参考以下文章

Kotlin 冒泡算法 ,高德地图 过滤掉两点之间距离小于50的数据,不重复显示

谷歌api返回公里而不是英里

计算R中具有纬度,经度和海拔高度的两点之间的距离[关闭]

ARCGis中怎样计算两点间的距离

什么是两点之间的距离 什么定义

使用 Google Map API V2 查找地图上两点之间的距离