Как разработать график для обработки многонаправленных отношений в neo4j - PullRequest
0 голосов
/ 27 апреля 2018

Я пытаюсь понять, как обрабатывать граф в neo4j, основываясь на нескольких отношениях.

Например:

Предположим, что существует один граф с тремя узлами Customer, Store и Brands, и между этими узлами существуют следующие отношения:

Customer--Goesto-->Store  
Store--Sells-->Brand

Узлом "Customer" является "bharath", а узлами "Store" являются s1, s2 и узлы "Brand" b1, b2 и b3. s1 продает b1, b2 и s2 продает b1, b3. Я хочу выяснить, можем ли мы спроектировать график таким образом, чтобы запросить результат и вернуть путь от покупателя к бренду на основе условия. В моем случае бренд, который хочет получить клиент, это b2.

Требуемый график:

    Let the nodes be (:Customer) = c, (:Store) = s, (:Brand) = b

                      (c{name:"Blah"})
                              |
                          [:Goesto]
                         /         \
                 (s:{sname"s1")   (s{sname:{"s2"})
                     /                \
                 [:Sells]          [:Sells]
               /          \        /
    (b{bname:"b1})  (b{bname:"b2"})     

Мне просто интересно, сможем ли мы спроектировать график и правильно обработать его описанным выше способом.

1 Ответ

0 голосов
/ 30 апреля 2018

Вы просто выражаете свою картину

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

А затем вернуть любой узел, отношение или весь путь.

MATCH path = (c:Customer {name:"Blah"})-[goes:GoesTo]->(s:Store)-[sells:Sells]-(b:Brand {name:"b2})
WHERE condition
RETURN path 
...