2013-07-18 1 views
0

Я создал 5 узлов в neo4j следующим образом.neo4j - пользовательское предложение с обоюдным счетом

Node 1 {userid:1000, username: A, someOtherProperties...} 
Node 2 {userid:2000, username: B, someOtherProperties...} 
Node 3 {userid:3000, username: c, someOtherProperties...} 
Node 4 {userid:4000, username: D, someOtherProperties...} 
Node 5 {userid:5000, username: E, someOtherProperties...} 

Узел 1 соединен с узлом 2 & 3, и узлом 2, связанным с узлом 1, 3, 4

1 -> 2 
1 -> 3 
2 -> 1 
2 -> 3 
2 -> 4 
3 -> 4 

Теперь я хочу пользователя предложения для узла 1, который содержит тот узел, который не подключен с он сам с взаимным счетом. Я хочу получить такой результат.

node id userid username mutual count 
------- ------ -------- ------------- 
4 4000 D   2    (which is node 2 & 3) 
5 5000 E   0  

Я пробовал запрос cypher, но я не добился успеха.

+0

Что запрос вы пробовали? Можете ли вы поделиться этим? – Luanne

+0

Спасибо @Luanne. Я попытался выполнить следующий запрос: START user = node: node_auto_index («userid: *»), me = node: node_auto_index (userid = '92') ГДЕ пользователь <> me С пользователем MATCH pMutualFriends = me - [: friends ] -> mf <- [?: friends] -user RETURN user.userid, user.UserName, COUNT (pMutualFriends) As MutualCount Заказ по MutualCount desc; Я забыл поставить «?» в отношениях до, что я исправил. У меня есть результат, которого я ожидал, но я не уверен. Правильно это или нет? –

+0

Итак, вы ищете пользователя U, найдите всех друзей друзей U и количество друзей U, связанных с друзьями друзей? Не знаете, почему E появляется в вашем примере, потому что с вами нет друзей. Возможно, я неправильно понял цель вашего запроса? – Luanne

ответ

0

Пожалуйста, попробуйте

START user=node:node_auto_index(name='A'), f=node(*) 
MATCH user-[r?:FRIEND*1..2]->(f) 
WITH DISTINCT r AS friendRelation,f 
RETURN count(friendRelation),f 

Который даст вам ряд других отношений с любым другим узлом с глубиной 2 (другом друга)

+0

Спасибо @Luanne Мне не нужен друг друга, но мне нужен общий друг с узлом A –

+0

Извините, но я довольно смущен. Не могли бы вы определить, что вы подразумеваете под общим другом? Для узла A в вашем графике console.neo4j.org/?id=h1p7it, каковы ожидаемые результаты – Luanne

+0

извините @Luanne, я плохо разбираюсь в английском, поэтому я не могу объяснить вас правильно. еще раз извините. Мне нужен список пользователей с взаимным подсчетом. В моем случае node1 (имя пользователя: A) является зарегистрированным пользователем и хочет искать других пользователей, начинающихся с некоторого слова (например, «aakas. *»). и если какой-то узел существует с именем пользователя 'aakas'. эти записи должны отображаться с взаимным подсчетом. ты можешь меня достать? или больше нужно объяснить вам? –

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

  • Нет связанных вопросов^_^