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

zlwx9yxi  于 2022-11-05  发布在  Solr
关注(0)|答案(1)|浏览(198)

我有两个商业地点的纬度和经度,想计算它们之间的距离。我如何使用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();
x6yk4ghg

x6yk4ghg1#

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

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

“distance”是要返回geodist()结果的字段名。

相关问题