2013-01-24 54 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生成任何其他形状的缓冲区的多边形。