将Solr查询空间搜索语法转换为Lucene

时间:2017-10-09 20:41:35

标签: java solr lucene

我有以下Solr查询,我正在寻找等效的Lucene查询语法:

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

1 个答案:

答案 0 :(得分: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