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

标签 java apache solr solrj

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

相关文章:

java - 您如何判断用户是否在从 Java servlet 下载期间点击了取消?

javascript - 是什么原因导致只有 1 个并发连接?

solr - 两个以上字段值的总和并将其作为 solr 中的新字段返回

java - doInBackground() 错误 -> NoClassDefFoundError : org. apache.http.entity.ContentType

linux - 使用 Apache 时,我应该将工作区目录放在哪里?

solr - 选择哪个开源搜索引擎:社交性,大量更新,方面搜索...?

hadoop - Hadoop大数据文件文本搜索

java - 通过 ExecutorService 执行 Thread 时 Thread.join() 不起作用

java - 刷新 Activity 而不重新打开它?

java - 如何使使用 '&' 指定的颜色代码的用户输入的消息在游戏中显示为彩色?