Search list with mutual count (2nd try)

As I said in my comment, trying to query for connected and disconnected nodes at the same time doesn’t seem to be a good idea. If you want only connected nodes, try the following query : START me=node:node_auto_index(UserName=”manish”) MATCH me-[:friends]-mf-[:friends]-other, me-[r?]-other WHERE other.UserName! =~ ‘(?i)dh.*’ RETURN DISTINCT ID(other), r.ApprovalStatus AS status, count(mf) AS mutual, ID(me) … Read more

Is there a way to show cypher execution plan?

You can still find the neo4j shell, where you can run the profile command. Either by connecting to the running server by starting bin/neo4j-shell Or by switching to the old web-ui in the “(i)” Info-menu on the left side and selecting the bottommost link “webadmin” -> http://localhost:7474/webadmin Profiling information will be added to browser later … Read more

What does a comma in a Cypher query do?

Since Cypher’s ASCII-art syntax can only let you specify one linear chain of connections in a row, the comma is there, at least in part, to allow you to specify things that might branch off. For example: MATCH (a)–>(b)<–(c), (b)–>(d) That represents three nodes which are all connected to b (two incoming relationships, and one … Read more

Return node if relationship is not present

Update 01/10/2013: Came across this in the Neo4j 2.0 reference: Try not to use optional relationships. Above all, don’t use them like this: MATCH a-[r?:LOVES]->() WHERE r IS NULL where you just make sure that they don’t exist. Instead do this like so: MATCH a WHERE NOT (a)-[:LOVES]->() Using cypher for checking if relationship doesn’t … Read more