我正在使用工作室的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
然后,我使用Place
和latitude
创建了一些longitude
个对象。
当我尝试使用记录的格式进行空间搜索时
select from Class where [<lat-field>,<long-field>] NEAR [<x>,<y>]
搜索完成且没有错误,但返回没有结果,即使我传入其中一个Place
对象的确切坐标。
我还尝试使用
直接查询索引 select from index:Place.l_lon
也成功没有错误但没有返回任何结果。我在想我的索引可能是空的。我尝试从架构编辑器重建它,但仍然没有结果。另外,据我所知,没有办法手动将复合条目(如位置坐标)添加到索引中。我错过了什么吗?
答案 0 :(得分:1)
尝试使用语法指定最大距离
select from Class where [<lat-field>,<long-field>,$spatial] NEAR [<x>,<y>,{"maxDistance": distance}]