2012-02-25 3 views
0

У меня есть несколько вопросов.Работа с Neo4J REST API

Как я могу запросить узел по его свойству? Я вижу только запрос по идентификатору узла.

И как я могу получить, например, всех друзей и неподтвержденных друзей узла? На данный момент я могу это сделать, только запросив все отношения узла и перейдя по нему, проверив свойство каждой связи.

Моя идея в следующем: узел имеет параметр - id (идентификатор пользователя), у отношения есть свойства - направления - FROM_ME или TO_ME, статус - ПОДТВЕРЖДЕН, НЕОПРЕДЕЛЕН. Все запросы выполняются в REST API на Java.

Как я могу сделать это простым способом, как в SQL, например, SELECT друзья WHERE friend_id = 1?

Ссылки на некоторые учебники с решениями и методиками таких вопросов qould быть оценен

ответ

1

Чтобы ответить на ваш первый вопрос, вы можете использовать индексы для быстрого поиска узлов по свойству на узле. Документы для REST здесь: http://docs.neo4j.org/chunked/milestone/rest-api-indexes.html

Для второго вопроса язык запросов Cypher упрощает выполнение этих типов запросов. Вот пример, который получает все пользователи, подключенные к данному пользователю через отношения ДРУГА, где свойство «статус» отношений является «подтверждено»:

START user=node(123) 
MATCH user-[r:FRIEND]-friend 
WHERE r.status="confirmed" 
RETURN friend 

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

Вот Cypher документы: http://docs.neo4j.org/chunked/milestone/cypher-query-lang.html

Вот документы о внесении Cypher запросов через REST API: http://docs.neo4j.org/chunked/milestone/rest-api-cypher.html

+0

Спасибо за ответ. Я понял, что «ДРУЗЬЯ» является собственностью отношений? Правильно? Но что такое «друг»? У меня есть отношения только с собственностью «ДРУЗЬЯ». – J3DI

+0

Каков тип отношений? Все отношения имеют тип и направление и нулевые или более свойства. Часть запроса [r: TYPE] отфильтровывает только отношения данного типа, а часть «где» дополнительно фильтруется на основе отдельных свойств. –