如何在OrientDB中添加空间索引?

时间:2015-01-25 14:43:20

标签: lucene 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

然后,我使用Placelatitude创建了一些longitude个对象。

当我尝试使用记录的格式进行空间搜索时

select from Class where [<lat-field>,<long-field>] NEAR [<x>,<y>]

搜索完成且没有错误,但返回没有结果,即使我传入其中一个Place对象的确切坐标。

我还尝试使用

直接查询索引

select from index:Place.l_lon

也成功没有错误但没有返回任何结果。我在想我的索引可能是空的。我尝试从架构编辑器重建它,但仍然没有结果。另外,据我所知,没有办法手动将复合条目(如位置坐标)添加到索引中。我错过了什么吗?

1 个答案:

答案 0 :(得分:1)

尝试使用语法指定最大距离

select  from Class where [<lat-field>,<long-field>,$spatial] NEAR [<x>,<y>,{"maxDistance": distance}]