我有两个营业地点的经纬度,想计算它们之间的距离。我如何使用 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();
最佳答案
要返回距离,您应该将 geodist()
函数添加到 fl
字段列表查询字段,如下所示:
query.set("fl","*,distance:geodist()")
“distance”是返回geodist()
结果的字段名。
关于java - Solr查询计算两点之间的地理距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13770154/