如何添加到 OrientDB 中的空间索引?
How do I add to a spatial index in OrientDB?
我正在使用工作室的 OrientDB 2.0。我使用文档中的代码成功创建了 Lucene 空间索引:
CREATE class Place extends V
CREATE property Place.name string
CREATE property Place.latitude double
CREATE property Place.longitude double
CREATE INDEX Place.l_lon ON Place(latitude,longitude) SPATIAL ENGINE LUCENE
然后我用 latitude
和 longitude
创建了一些 Place
个对象。
当我尝试使用记录的格式进行空间搜索时
select from Class where [<lat-field>,<long-field>] NEAR [<x>,<y>]
搜索完成且没有错误,但 returns 没有结果,即使我传入了 Place
个对象之一的精确坐标。
我也试过直接使用
查询索引
select from index:Place.l_lon
同样成功,没有错误,但没有返回任何结果。我在想我的索引可能是空的。我尝试从模式编辑器重建它,但仍然没有结果。此外,据我所知,无法手动将位置坐标等复合条目添加到索引中。我错过了什么吗?
尝试用语法指定最大距离
select from Class where [<lat-field>,<long-field>,$spatial] NEAR [<x>,<y>,{"maxDistance": distance}]
我正在使用工作室的 OrientDB 2.0。我使用文档中的代码成功创建了 Lucene 空间索引:
CREATE class Place extends V
CREATE property Place.name string
CREATE property Place.latitude double
CREATE property Place.longitude double
CREATE INDEX Place.l_lon ON Place(latitude,longitude) SPATIAL ENGINE LUCENE
然后我用 latitude
和 longitude
创建了一些 Place
个对象。
当我尝试使用记录的格式进行空间搜索时
select from Class where [<lat-field>,<long-field>] NEAR [<x>,<y>]
搜索完成且没有错误,但 returns 没有结果,即使我传入了 Place
个对象之一的精确坐标。
我也试过直接使用
查询索引select from index:Place.l_lon
同样成功,没有错误,但没有返回任何结果。我在想我的索引可能是空的。我尝试从模式编辑器重建它,但仍然没有结果。此外,据我所知,无法手动将位置坐标等复合条目添加到索引中。我错过了什么吗?
尝试用语法指定最大距离
select from Class where [<lat-field>,<long-field>,$spatial] NEAR [<x>,<y>,{"maxDistance": distance}]