2016-05-13 6 views
2

Я собрал последнюю версию Neo4j Spatial(neo4j-spatial-0.16-neo4j-3.0.0-server-plugin.jar) и отправил ее в мою папку Neo4j 3.0.0.Neo4j 3.0.0 + ПРОСТРАНСТВЕННЫЙ в Cypher

Расширение указано в браузере, и я могу сделать POST вызовы для пространственной функциональности.

Однако, я считаю, что я должен также быть в состоянии использовать изящную новую функцию CALL в Neo4j 3.0.0 сделать Cypher звонки, как это:

CALL spatial.addPointLayer('cities'); 

Как упоминалось обновлением Стефана здесь:

How do I create a spacial index in neo4j using only cypher?

И показано здесь:

http://jexp.github.io/graphgist/idx?dropbox-14493611%2Fcypher_spatial.adoc

Однако, я получаю «Процедуру с именем spatial.addPointLayer, зарегистрированным для этого экземпляра базы данных». ошибка, и может видеть те же вызовы, которые не работают в примере jexp ... Я не уверен, что я слишком рано на вечеринке или что-то не хватает?

+0

Вы нашли решение по этому вопросу? Я могу получить список процедур, используя «CALL spaces.procedures()» или список слоев при использовании «CALL spaces.laterTypes()», но при попытке вызвать любую из возвращенных процедур или документированных процедур, Я получаю сообщение «Не удалось вызвать процедуру« spaces.layers »: вызвано: java.lang.NoClassDefFoundError: org/geotools/filter/text/cql2/CQLException« – Blake

ответ

0

Плагин должен находиться в папке Plugin для конкретной базы данных, а не в папке «Neo4j CE 3.0.x/Plugins».

0

В Neo4j 3.0 для основных операций вам не нужен пространственный плагин.

По умолчанию поддерживается point и distance. Эта поддержка предполагает, что вы установите ключи свойств lat/lon как latitude и longitude.

Вы может использовать их для вычисления расстояния между двумя узлами, например:

MATCH (a:City {name:'London'}), (b:City {name:'Barcelona'}) 
RETURN distance(point(a), point(b))/1000 as dist 

Вы можете найти подробный пример в этом graphgist:

http://gist.asciidoctor.org/?dropbox-14493611%2Fcypher_spatial.adoc#_spatial_procedures

Во-вторых, в Neo4j 3.0 появляется хранимая процедура, официальный набор процедур поддерживается neo4j здесь:

https://github.com/neo4j-contrib/neo4j-apoc-procedures

Это обеспечивает некоторые дополнительные пространственные функции.

+0

Спасибо Кристоф, я должен уточнить, что хотел бы попробовать пространственный индекс , По умолчанию пространственные возможности в Neo4j 3.0 выглядят медленными, поэтому я надеялся использовать Neo4j-пространственный для реализации индекса и попытаться сделать это через Cypher. – maly

+0

ХО ОК, я думаю, что Крейг Тавернер работает на этой стороне, я спрошу его –