2013-01-24 55 views
0

我有多邊形和線串工作,但似乎無法獲得適用於這些搜索距離的格式。我試圖做一個搜索,說一個字符串內100公里。 我的查詢看起來像這樣。Spatial4j + solr4.1 =多邊形和線條上的距離(半徑)搜索?

geo:"Intersects(LINESTRING(126.9140625 -17.644022027872722, 142.646484375 -20.46818922264095, 133.59375 -29.305561325527698, 127.0458984375 -18.62542454070125) d=1)" 

返回31結果。

當我嘗試出1000,或10000或100000我得到相同的31個結果。

geo:"Intersects(LINESTRING(126.9140625 -17.644022027872722, 142.646484375 -20.46818922264095, 133.59375 -29.305561325527698, 127.0458984375 -18.62542454070125) d=10000)" 

我得到相同數量的結果。我的格式是否正確?我認爲最新版本解決了這個問題,我應該能夠通過多邊形和線串(不僅僅是圓圈)來實現距離。

回答

0

Solr尚未開箱即用。你添加的'd'參數實際上沒有被分析/觀察,所以它沒有效果。爲了得到你想要的東西,你需要按距離緩衝形狀。恰巧,Spatial4j的最新版本具有所謂的本地「BufferedLineString」形狀,但尚未完全嵌入;所以有一些集成代碼可以解析它,以便使用它。 Spatial4j是Lucene-spatial使用的形狀庫。但即使沒有,您也可以使用JTS生成任何其他形狀的緩衝區的多邊形。