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();  
4

1 回答 1

0

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

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

“距离”是返回geodist()结果的字段名称。

于 2021-10-19T14:45:46.083 回答