Neo4j: какой подход к запросу для выбора одного узла на основе свойства и положения узла?

У меня возникли проблемы с оценкой того, когда использовать какой механизм запросов Neo4j (Gremlin, Cypher, обходы, встроенные алгоритмы). Например, я хотел бы выбрать единственный узел на всем графике.

  • с наибольшим количеством ребер;
  • в пределах определенной длины пути от одного из 4 начальных узлов;
  • имеющий определенную ценность для собственности.

Я использую neo4jrestclient Python и могу выполнять базовые сценарии и обходы Gremlin / Cypher для некоторых требований по отдельности (например, вычисление In / OutDegree с помощью Gremlin), но мне не хватает более общей картины того, как их комбинировать.

Какие-либо предложения?


person mhermans    schedule 18.05.2012    source источник
comment
Но проблема в neo4jrestclient или в самом запросе?   -  person Javier de la Rosa    schedule 04.06.2012
comment
Клиент работает нормально, мне больше интересно, какой механизм запросов и где использовать.   -  person mhermans    schedule 16.06.2012
comment
Во многом это зависит от ваших предпочтений, обходы быстрее всего, шифрование удобнее. Но вы должны быть осторожны, так как некоторые из того, что вы хотите делать, являются глобальными графовыми запросами, которые не являются оптимальным вариантом использования для Neo4j.   -  person Michael Hunger    schedule 06.07.2012
comment
Вы индексируете недвижимость?   -  person ERR0    schedule 30.01.2013


Ответы (1)


В Cypher это будет выглядеть так:

start n=node:index(indicator="startnode-value")
match n-[:REL*..10]->target
where target.prop = "value"
return target
person Michael Hunger    schedule 08.05.2013