Solr查询计算两点之间的地理距离

3
我有两个商业地点的纬度和经度,并想计算它们之间的距离。如何使用solr查询进行计算。
我已获得查询以获取从某一点(纬度,经度)开始的所有最近位置。
但是希望能够获得获取两点之间距离的查询。
以下是从一个点获取位置的示例代码片段:
// 示例位置
location = new double[]{lat, long}; 

SolrQuery query = new SolrQuery("{!func}geodist()");  
query.set("fq","query");  
query.set("sfield", "location");  
query.set("pt", location );  
query.setSortField("score", ORDER.asc);  
query.setFields("score", "id");  
SolrDocumentList list = solrServer.query(query).getResults();  

3
你看过这个页面吗?- http://wiki.apache.org/solr/SpatialSearch#Returning_the_distance - Paige Cook
我尝试了从那里发出的查询 &sort=min(geodist(store,37.7,-122.4),geodist(store,39.7,-105))%20asc它给出的最大距离是1.0,这不是实际距离,我猜测。 - Sanket
1个回答

0

如果要返回距离,您应该将geodist()函数添加到查询字段fl字段列表中,如下所示:

query.set("fl","*,distance:geodist()")

"

distance" 是要返回 geodist() 结果的字段名称。

"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接