在 solr 3.6 中获取与 geohash 字段的距离

Posted

技术标签:

【中文标题】在 solr 3.6 中获取与 geohash 字段的距离【英文标题】:Get Distance from geohash field in solr 3.6 【发布时间】:2012-09-20 15:36:31 【问题描述】:

是否可以从 geodist() 过滤器返回具有多个值的 geohash 字段的距离?

geosort 和 geodist 过滤器工作正常,但我正在尝试获取查询点与结果中返回的位置之间的距离。

我试过http://wiki.apache.org/solr/SpatialSearch#Returning_the_distance 第二种方法是: //localhost:8983/solr/select?indent=true&fl=name,store&sfield=store&pt=45.15,-93.85&sort=score%20asc&q=!funcgeodist()

但它返回奇怪的结果,用 2 个位置测试它返回分数 9979.032,实际上两个点之间的距离约为 33,000 公里?

它使用什么单位返回分数字段中的距离?我假设公里,但它没有意义,或者结果是假的,我不知道

任何帮助将不胜感激,谢谢

【问题讨论】:

【参考方案1】:

Solr 3 不支持多值地理空间字段。你应该特别忽略“GeoHash”字段类型;顺便说一下,它已从 Solr 4 的示例模式中删除。要在 Solr 3 中获取多值地理空间字段(包括排序),您需要使用我开发的插件SOLR-2155。 Solr 4 有一个基于该技术的空间场。

【讨论】:

我已经在使用它了,它是一个很棒的插件,但是从结果中获取距离有什么问题。谢谢你这么棒的插件 哦,你已经在使用它了;别客气。但是根据您的结果,似乎可能存在错误。应该是KM。如果结果有问题,那么只需自己计算即可。在网上查找使用您选择的语言的 Haversine 公式的代码示例,您一定会找到它 - 最多 10 行。 和Haversine公式结果差不多,我比较了近距离

以上是关于在 solr 3.6 中获取与 geohash 字段的距离的主要内容,如果未能解决你的问题,请参考以下文章

Solr faceting 返回平均值和计数

Solr/Tika 提取失败 NoSuchMethodError、Solr 3.6、Tika 1.0、Jboss 5.0.1

检查一个 geohash 是不是与另一个 geohash 相交

无法获取 Geohash 的边界框

两万字零基础爬虫requests初阶教程,手把手教你爬数据(建议收藏)

万字总结 !!redis数据结构与对象