2011-12-29 3 views

ответ

7

Если все ваши узлы проиндексированы (например, посредством автоматической индексации), вы можете использовать индексный запрос в качестве начальной точки, а затем найти те узлы, у которых нет исходящих отношений.

start n=node:node_auto_index("id:*") 
match n-[r?]->m 
where r is null 
return n 

В настоящее время я предпочел бы использовать:

start n=node:node_auto_index("id:*") 
where not (n-->m) 
return n 
+0

в любом случае индексировать задним числом? – Dan

+0

Да, но вам нужно будет создать нужные индексы, затем пройти через все узлы и добавить их там, где это необходимо. В native java api вы должны использовать [GlobalGraphOperations.getAllNodes()] (http://components.neo4j.org/neo4j/1.6.M02/apidocs/org/neo4j/tooling/GlobalGraphOperations.html#getAllNodes()) – akollegger

+0

Боюсь, я могу использовать только REST или webadmin ... есть ли надежда? – Dan

-2

Вы не можете. Графические глобальные запросы невозможны с сегодняшним Cypher.

+0

они теперь (Neo4j 1.7) с начальным n = node (*) соответствуют ... где ... return n –

+0

этот ответ получает downvoted в конце концов, но он был точным в момент публикации, как кажется –

2

я использую что-то вроде этого, но только тогда, когда я использую пружинный данных-Neo4j:

start n = node:__types__(className="com.app.entity.Model") 
    // match, where... 
    return n 

Надежда, что помогает!

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