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
在我的例子中它被互换了
我在 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
在我的例子中它被互换了