solr geodist() 给出错误的距离

solr geodist() giving wrong distance

我在 solr 查询中使用 geodist()。以下是我的查询

q=(name:(*)&fl=person_id, name, longitude, lattitude, distance:geodist()&fq={!geofilt}&spatial=true&pt=73.7708441,18.5664871&d=10&sort=geodist() asc&group=true&group.field=person_id&group.format=simple&group.main=true&start=0&rows=15

我的输出中的一个条目是

{
    \"personId\": 313403,
    \"name\": \"Dev\",
    \"longitude\": 73.812498,
    \"latitude\": 18.439598,
    \"distance\": 6.079763395151475,
}

但是当我在互联网上计算经纬度之间的距离时,即 (73.7708441,18.5664871) 到 (73.812498, 18.439598),它给了我 14.782 公里或 9.187 英里

我搜索了 solr geodist() 但到处都使用相同的函数和查询。有人可以告诉我这里出了什么问题吗?

看起来有些电线在某处交叉了。

如果您的坐标应该是:(lat: 73.7..., long:18.5...),那么 solr 的距离是正确的,并且您的字段 ("latitude" 和 "longitude") 似乎贴错了标签

反之,如果应该是(lat: 18.5..., long:73.7...),那么你计算的距离是正确的,并且坐标向后您的查询,应该是:pt=18.5664871,73.7708441。很确定您的 LatLonType 字段也必须将其倒退,因此也需要修复这些字段并重新编制索引。

终于解决了。

错误太多

1-pt 应该是 pt=lat, long

2-while put lat long in solr (by data-config.xml),纬度字段的名称应该是location_0_coordinate和经度-location_1_coordinate

在我的例子中它被互换了