Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
空间4j+;solr4.1=多边形和线串上的距离(半径)搜索?_Solr_Spatial - Fatal编程技术网

空间4j+;solr4.1=多边形和线串上的距离(半径)搜索?

空间4j+;solr4.1=多边形和线串上的距离(半径)搜索?,solr,spatial,Solr,Spatial,我有多边形和线串工作,但似乎无法获得的格式应用于这些搜索的距离。我想在一个字符串内搜索100公里。 我的问题是这样的 geo:"Intersects(LINESTRING(126.9140625 -17.644022027872722, 142.646484375 -20.46818922264095, 133.59375 -29.305561325527698, 127.0458984375 -18.62542454070125) d=1)" 返回31个结果 geo:"Intersects(

我有多边形和线串工作,但似乎无法获得的格式应用于这些搜索的距离。我想在一个字符串内搜索100公里。 我的问题是这样的

geo:"Intersects(LINESTRING(126.9140625 -17.644022027872722, 142.646484375 -20.46818922264095, 133.59375 -29.305561325527698, 127.0458984375 -18.62542454070125) d=1)"
返回31个结果

geo:"Intersects(LINESTRING(126.9140625 -17.644022027872722, 142.646484375 -20.46818922264095, 133.59375 -29.305561325527698, 127.0458984375 -18.62542454070125) d=10000)"
当我尝试到1000、10000或100000时,我得到了相同的结果

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

我得到同样数量的结果。我的格式正确吗?我认为最新版本解决了这个问题,我应该能够通过多边形和线串(不仅仅是圆)来计算距离。

Solr还没有现成的方法。您添加的“d”参数实际上没有被解析/观察到,因此它没有任何效果。要得到想要的,需要按距离缓冲形状。恰好最新版本的Spatial4j具有所谓的本机“BufferedLineString”形状,但尚未完全嵌入;因此,您有一些集成代码来解析它,以便使用它。Spatial4j是Lucene spatial使用的形状库。但即使没有,您也可以使用JTS生成任何其他形状的缓冲多边形