2015-01-25 3 views
2

Я использую OrientDB 2.0 из студии. Я создал пространственный индекс Lucene успешно, используя код из документации:Как добавить к пространственному индексу в OrientDB?

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 OBJ ects с latitude и longitude.

Когда я пытаюсь сделать пространственный поиск, используя документированный формат

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

поиска завершается без ошибок, но не возвращает никаких результатов, даже когда я прохожу в точных координатах одного из Place объектов.

Я также попытался запрашивая индекс непосредственно с помощью

select from index:Place.l_lon

который также удалось без ошибок, но не дал результатов. Я думаю, что мой индекс может быть пустым. Я попытался перестроить его из редактора схем, но результата все равно не получилось. Кроме того, насколько я могу судить, нет возможности вручную добавлять составные записи, такие как координаты местоположения, к индексу. Я что-то упускаю?

ответ

1

Попробуйте указать максимальное расстояние с синтаксисом

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

Это работало. Интересно, есть ли какие-либо последствия для производительности из разных подходов. – birikino

Смежные вопросы