How to find the most connected node of particular relationship type in neo4j using cypher query

1,782 views
Skip to first unread message

Gouse

unread,
Dec 7, 2012, 2:27:51 AM12/7/12
to ne...@googlegroups.com
 Hi,
 
Can some one help me to find the most connected node of particular relationship type in neo4j using cypher query.
 
Suppose I have
 
Node1      Node2     Relationship
A             B             Knows
A             C             Knows
B             D             Loves
A            D               Knows
 
Here Node A is the most connected node.of particular relationship type "knows" .so how to find this node using cypher query?
 
Thanks in Advance.
 
Regards
Gouse

Peter Neubauer

unread,
Dec 7, 2012, 7:03:24 AM12/7/12
to Neo4j User
How about

start n=node(*)
match p = n-[:KNOWS]->()
return n,count(p) as count
order by count desc
limit 1

http://console.neo4j.org/r/nbdtcx


?

Cheers,

/peter neubauer

G: neubauer.peter
S: peter.neubauer
P: +46 704 106975
L: http://www.linkedin.com/in/neubauer
T: @peterneubauer

Neo4j 1.8 GA - http://www.dzone.com/links/neo4j_18_release_fluent_graph_literacy.html
> --
>
>

gouse mohiddin

unread,
Dec 7, 2012, 10:08:15 AM12/7/12
to ne...@googlegroups.com
Thanks peter..

Regards
Gouse


--



Craig Taverner

unread,
Dec 7, 2012, 1:14:37 PM12/7/12
to ne...@googlegroups.com
I very curious about the performance of this query. If you have 10M relationships, but only 10 are of type KNOWS, will this query be optimized to lookup the relationships first (eg. relationship type index), or will it do what it appears to do, which is to iterate through every node in the database and test its relationships (which will be very, very, very much slower)?

For smaller databases this is not relevant, but for very large ones, some clever query pre-processing-optimization could make amazing differences in performance.


--



Michael Hunger

unread,
Dec 7, 2012, 1:25:45 PM12/7/12
to ne...@googlegroups.com
There is no lookup by rel-type index in neo4j anywhere.

Michael

--
 
 

Michael Hunger

unread,
Dec 7, 2012, 1:27:53 PM12/7/12
to ne...@googlegroups.com
This might be faster and more efficient:

start n=node(*)
return n, length(n--()) as connectedness
order by connectedness desc
limit 10

--
 
 

gouse mohiddin

unread,
Dec 8, 2012, 4:47:13 AM12/8/12
to ne...@googlegroups.com
Thanks Michael..

--
 
 

Reply all
Reply to author
Forward
0 new messages