【发布时间】:2019-05-13 00:07:18
【问题描述】:
使用 Solr 7.7,我正在索引简单的矩形多边形,并尝试通过任意边界框过滤它们,因此我使用了 Solr 网站上记录的“范围查询语法”技巧。
这是字段的定义:
<fieldType name="my_geom"
class="solr.SpatialRecursivePrefixTreeFieldType"
spatialContextFactory="Geo3D"
planetModel="WGS84"
distanceUnits="kilometers"
format="WKT"
geo="true"
/>
<field name="*_geom" type="my_geom" indexed="true" stored="true" />
这里是查询:
/select?fq=spatial_geom:[55.0260828,-115.5085624 TO 55.02646,-115.507337]&q=*:*
我希望只获得落在定义的边界框内的结果,但我实际上获得了在“spatial_geom”字段中具有非空值的所有文档。这是我不希望(但我)得到的文档示例:
{
"spatial_geom":"POLYGON((-118.080201721669 54.5864541583249,-118.080201721669 54.5865258517606,-118.080078279314 54.5865258517606,-118.080078279314 54.5864541583249,-118.080201721669 54.5864541583249))",
...[other fields redacted]
}
编辑 1: 升级到 Solr 8.0.0 仍然遇到同样的问题。鉴于我正在获取 所有 个文档(具有非空值),我怀疑我在做一些根本错误的事情,我只是看不到它。
编辑 2: 为了使用更简单的数字来仔细检查数据是否不错,我使用以下 WKT POLYGON((10 10,10 20,20 20,20 10,10 10)) 加载了所有带有假多边形的文档,然后使用查询?fq=spatial_geom:[30,30 TO 40,40] 它仍然返回所有文件!
【问题讨论】:
标签: solr