2017-10-09 56 views
-1

我有以下Solr的查询和我要找相当于Lucene的查询语法:转换Solr的查询空间搜索语法Lucene的

所有的
"&fl=*,score,distance:{!func}geodist(latLong,41.188222,-73.19544) 
+0

我们可以看看你的Lucene查询Jess的一个开始,编辑成问题吗?这将有助于读者理解你在哪里遇到困难。 – halfer

+0

那么,你有什么问题?你到目前为止尝试了什么? – Mysterion

回答

0

首先,这不是一个查询。 在Solr中渲染结果时,您正在渲染结果文档,为每个文档计算一个额外的字段(距离)。 这称为函数值作为伪字段[1] 计算此字段,从每个生成的文档中提取存储的内容并应用函数查询来计算距离点的距离。

要在Lucene中做到这一点,您需要探索ValueSource [2]的概念。请注意,从快速查看来看,地理距离的ValueSource实际上是Solr方[3]。 所以你可能需要导入它。

[1] https://lucene.apache.org/solr/guide/6_6/common-query-parameters.html#CommonQueryParameters-FunctionValues

[2] org.apache.lucene.queries.function.valuesource,org.apache.lucene.queries.function.TestValueSources

[3] org.apache.solr .schema.LatLonValueSource

+0

感谢您的更新我的基本问题是空间搜索的lucene查询语法吗? – jess

+0

在Lucene中有一个用于空间搜索的整个包:org.apache.lucene.spatial.query 记住Lucene只是一个库,因此您需要自行构建查询或使用查询解析器。 有关示例,请参阅此类中的search()方法: org.apache.lucene.spatial.SpatialExample –