2017-10-09 88 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 –