Как найти все узлы с определенной меткой с помощью Java API в Neo4j 2.0.x?

Мне нужно найти конкретный узел во всем графе, используя низкоуровневый API Java. Раньше я делал это с помощью узла Reference в версиях 1.x, но эта концепция была удалена в выпуске 2.0.

Я подумал, что могу использовать для этого метки: я бы назначал метку этому узлу (и только этому узлу) при его создании. Впоследствии я бы получил все узлы с этой конкретной меткой, которая должна вернуть одно совпадение, то есть специальный узел, который я ищу. К сожалению, я не могу найти способ найти все узлы, имеющие определенную метку, с помощью Java API.

Я могу сделать это с помощью Cypher, но я бы хотел, чтобы этот поиск был как можно быстрее, поэтому было бы здорово сэкономить на анализе, планировании и выполнении запросов.


person Zack    schedule 25.02.2014    source источник


Ответы (4)


Этот метод GlobalGraphOperations.getAllNodesWithLabel(Label label) возвращает все узлы с указанной меткой.

person Lisa Li    schedule 25.02.2014

Вы можете использовать GlobalGraphOperations.at(gdb).getAllRelationshipTypes() для получения всех узлов с меткой, а gdb — это ваша база данных графа.

person LoveTW    schedule 13.05.2014

Предоставленный ответ: устарело. предпочтительный метод теперь используется: GraphDatabaseService.findNodes(Label label)

person Ventres    schedule 09.11.2015

GraphDatabaseService.findNodesByLabelAndProperty (Label label, String propName, String propValue) может удовлетворить ваш счет....

или вы можете сохранить идентификатор узла при его первоначальном создании, тогда вы можете вызвать GraphDatabaseService.getNodeById(long id) - это, безусловно, самый быстрый способ получить конкретный узел.

person Dan G    schedule 25.02.2014