У меня есть большой график, в котором некоторые из отношений имеют свойства, которые я хочу использовать, чтобы эффективно обрезать график при создании подграфа. Например, если у меня есть свойство с именем 'relevance score'
, и я хочу начать с одного узла и разрастаться, собирая все узлы и отношения, но обрезая везде, где отношения имеют вышеуказанное свойство.Как найти конкретный подграф в Neo4j, используя where where
Моя попытка сделать сетчатой этот запрос:
start n=node(15) match (n)-[r*]->(x) WHERE NOT HAS(r.relevance_score) return x, r
Моя попытка имеет две проблемы, которые я не могу постановляю:
1) Размышляя Я считаю, что это не приведет к обрезанной графа, а скорее коллекция непересекающихся графов. Дополнительно:
2) Я получаю следующее сообщение об ошибке от того, что выглядит правильно сформирован высчитывать запрос:
Type mismatch: expected Any, Map, Node or Relationship but was Collection<Relationship> (line 1, column 52 (offset: 51))
"start n=node(15) match (n)-[r*]->(x) WHERE NOT HAS(r.relevance_score) return x, r"
Какая версия Neo4j вы используете? ['START'] (https://neo4j.com/docs/developer-manual/3.0/cypher/#query-start) считается устаревшим и [' has'] (https://neo4j.com/docs/developer -manual/3.0/cypher/# where-property-exists) больше не поддерживается в 3.x. –
3.0.6. Он по-прежнему работает, хотя для других запросов, но полезно знать. Я пропустил этот пункт в документах. – WildBill