neo4j,cypher , Count duplicated


Count duplicated

Question:

Tag: neo4j,cypher

Imagine that i have a graph in which for every pair of nodes m,n of type Nod1 there can be a node k of type Nod2 that connect them through relationships of type Rel, that is, there can be multiple patterns of the kind p=(m:Nod1)-[r:Rel]-(k:Nod2)-[s:Rel]-(n:Nod1). For a given node m (satisfying for example m.key="whatever") how can i find the node n that maximizes the number of nodes k that connect m to n? For example: imagine that there are 3 nodes k that connects m to n1 satisfying n1.key="hello" and 10 nodes k that connects m to n2 satisfying n2.key="world"; how to build a query that retrieves the node n2? :)

The title of the question is count duplicated, because i think that the problem is solved if i can count all "duplicated" patterns for each node n (that is, all patterns that has n as "endnode")!! :)


Answer:

Start by matching your m; then match the pattern you want, then filter by distinct n nodes, and count the number of k nodes connected via that n node, and you should be there.

MATCH (m:Nod1 { key: "whatever" })
WITH m
MATCH (m)-[r:Rel]-(k:Nod2)-[s:Rel]-(n:Nod1)
RETURN distinct(n), count(k) as x
ORDER BY x DESC;

Related:


How to check if an ExecutionResult is empty in Neo4j


java,neo4j
I am executing a query in neo4j using java. I don't know how to check if the execution result is empty. Here is my code. String firstquery=" start n=node(*) match(b)-[relatedto]->(n) where b.value=\""+applicationName+"\" return n"; ExecutionResult execResult = execEngine.execute(firstquery); System.out.println("executing query"); String results = execResult.dumpToString(); System.out.println(results); Iterator<Node> n_column1 = execResult.columnAs( "n"...

Parsing Neo4j ExecutionResult dumptoString in java


java,neo4j
I am using Neo4j graph database and the Neo4j Cypher api of java to get the query result.A dump to string method will give the execution result in the string format. GraphDatabaseFactory graphDbFactory = new GraphDatabaseFactory(); GraphDatabaseService graphDb = graphDbFactory.newEmbeddedDatabase("C:/TPNeo4jDB"); ExecutionEngine execEngine = new ExecutionEngine(graphDb); ExecutionResult execResult = execEngine.execute("MATCH (java:JAVA)...

Is it possible to use neo4j-reco with neo4j 1.9?


neo4j,recommendation-engine,graphaware
The title says pretty much all. I'm trying to use neo4j-reco by GraphAware on top of neo4j-1.9. However, I don't know if it is possible at this time.

Limit the results of a union cypher query


neo4j,cypher
Let's say we have the example query from the documentation: MATCH (n:Actor) RETURN n.name AS name UNION MATCH (n:Movie) RETURN n.title AS name I know that if I do that: MATCH (n:Actor) RETURN n.name AS name LIMIT 5 UNION MATCH (n:Movie) RETURN n.title AS name LIMIT 5 I can reduce...

Understanding Options for Building TimeTree in Neo4


neo4j,graphaware
Is it possible to construct something like GraphAware's TimeTree using Neo4j's CLI, GraphAware's importer, Michael Hunger's batch import, or with py2neo? It would be optimal to be able to do this using Neo4j's CLI (in terms of set up). I want to be able to search for a certain kind...

Add a relationship Neo4j based upon a condition


neo4j
I have 2 node Labels : Account , Transactions. MATCH (n:Account) RETURN n returns me 4 accounts with this property's: accountName RAHUL RAINA id 16294736 accountName SAVINGS ACCOUNT - RES id 16294732 accountName VISA GOLD id 16294492 accountName SBCHQ-GEN-PUB-IND-NONRURAL-INR id 16294488 Transactions is like this : MATCH (n:Transaction) RETURN n...

How do I get the Neo4J primary key back in a query result?


neo4j,cypher
I'm using the rest api, and cypher. How do I get back the primary key when doing a query like this for a node with some id that I have assigned to it? {"statements" : [ {"statement" : "MATCH (n) where n.id = { id } RETURN n", "parameters" :...

Authenticate to access the server with Java Neo4j Rest Api


java,rest,neo4j
I'm starting to use the Neo4j Rest Api but when I try to connect the server I get the following error : { "errors" : [ { "code" : "Neo.ClientError.Security.AuthorizationFailed", "message" : "No authorization header supplied." } ] } This error seems to be normal because I am not authenticating...

Assigning a label to a created node in Neo4jClient


c#,graph,neo4j,neo4jclient
I want to create some nodes of type Person and Books using Neo4jClient. To do that, I have class Person like this: Public Class Person { Public String Name; } To create node, I have written something like this: Var RefA = client.Create(new Person(){Name ="John"}); (Client -> GraphicClient) When I...

Are my Cypher statements 'overdone'


neo4j,py2neo
I am using py2neo with transactions. This means I am using the Cypher language. I am appending the textual Cypher statements to a transaction queue and submitting the contents of the queue in one shot with commit. It works fine. However, it is slow. I am getting about 100/nodes per...

Should we use the Neo4J internal id?


neo4j
We are currently working with a Neo4j database, and we need some kind of id to identify nodes. For example we have functions like CurrentUserHasAccess(NodeId) On other Stackoverflow posts I read that it's a bad idea to use the internal neo4j-identifier, because it can change over time. However I think...

Multiple Nodes per Line in Neo4j Batch Import Tool


neo4j
Using Neo4j's Batch Import Tool, how can I create multiple nodes from a single row, and then attribute some properties to Node 1 and some to Node 2? This is an example from 29.3: movieId:ID,title,year:int,:LABEL tt0133093,"The Matrix",1999,Movie tt0234215,"The Matrix Reloaded",2003,Movie;Sequel tt0242653,"The Matrix Revolutions",2003,Movie;Sequel Is there a way to make it...

number of connected nodes to specific nodes in a path


neo4j,cypher
I have a cypher query (below). It works but I was wondering if there's a more elegant way to write this. Based on a given starting node, the query tries to: Find the following pattern/motif: (inputko)-->(:cpd)-->(ko2:ko)-->(:cpd)-->(ko3:ko). Foreach the motifs/patterns found, find connected nodes with labels contigs, for the following nodes...

Left join in Neo4j does not seem to work


neo4j,cypher
This is my graph I am trying to make a query that tells me if the connections from a node of type T exist to nodes of type M. I heard that OPTIONAL MATCH is equivalent to SQL Left Join, but it does not include the the missing link. Here...

Neo4j 2.2.2 server does not start after db is generated via java code


java,neo4j,spring-data-neo4j
I am new to Neo4j. I am trying some application in Java using Neo4j 2.2.2 along with Spring Data. I am using spring-data-neo4j (2.2.2.RELEASE) to connect the Neo4j DB. I have successfully done all CRUD opertaions using repositories in Spring Data. But I am unable to open & view this...

localhost:7474/graphaware/changefeed/CFM gives 404


neo4j,graphaware
i am trying to track latest changes in neo4j in Server Mode so i followed this link https://github.com/graphaware/neo4j-changefeed as i see some extra node are added and here are changes about my db but http://localhost:7474/graphaware/changefeed/CFM gives me 404 i am using neo4j 2.2.2 and my neo4j.properties com.graphaware.runtime.enabled=true com.graphaware.module.CFM.1=com.graphaware.module.changefeed.ChangeFeedModuleBootstrapper com.graphaware.module.CFM.maxChanges=100 com.graphaware.module.CFM.pruneDelay=10000...

Global match regular expression with Neo4j Cypher query


regex,neo4j,cypher
I am searching in Neo4j using a regular expression. I would like this search to be global. As it stands, the search will only find words that start with inputted letters in the regular expression: MATCH (a) WHERE a.name =~ '(?i)bob.+' RETURN a.name So it will find the name Bob...

Getting error org.neo4j.rest.graphdb.entity.RestNode cannot be cast to java.lang.Iterable


neo4j,spring-data-neo4j
I am trying to filter feeds which contains user actvitity. I am using @QueryResult object to retrieve the result. I need both the feeds and the relationship information of user Liked Feeds. But while retrieving the feeds getting error: org.neo4j.rest.graphdb.entity.RestNode cannot be cast to java.lang.Iterable. (I am using SDN 3.3.0.RELEASE...

find neo4j libraries for java api


java,neo4j
I want to use neo4j libraries to connect my java app with neo4j database and follow the tutorials from http://neo4j.com/docs/stable/tutorials-java-embedded-hello-world.html. At the beginning I copied the sources code from https://github.com/neo4j/neo4j/blob/2.2.2/community/embedded-examples/src/main/java/org/neo4j/examples/EmbeddedNeo4j.java and netbeans complains about missing libraries like: import org.neo4j.graphdb.Direction; import org.neo4j.graphdb.GraphDatabaseService; import org.neo4j.graphdb.Node; import...

Cannot implicitly convert type from System.Collection.Generic.IEnumerable.MyClass to MyClass


c#,generics,neo4j,neo4jclient
Following is the code for which the error is being generated: using System; using System.Collections.Generic; using System.Linq; using System.Text; using Neo4jClient; using Neo4jClient.Cypher; namespace ConsoleApplication1 { public class SNode { public int shelfid { get; set; } public int floorid { get; set; } } public class PathsResult<TNode> { public...

Find last node in unknown amount of relationships


neo4j,cypher
I can find last node like this MATCH p=(a)-->(b)-->(c) WHERE a.name='Object' AND c:Prime RETURN c But how i would find last node if i don't know how many relationships -->()-->() between two nodes? I am trying to find last Node name by the Lable name. Last node doesn't have any...

How do I create a Neo4j relationship via the rails console?


ruby-on-rails,ruby,neo4j,neo4j.rb
I'm currently working through this tutorial and I'm stuck when it comes to creating relationships in the rails console. I've read through the Neo4jrb project documentation and a blog post on jayway.com but still can't figure it out. I've created a rails site and I want to create team nodes,...

Neo4J - Run dbinfo command from REST API


neo4j
I want to run the dbinfo -g "High Availability" command over the Neo4J API. Does such an endpoint exist?...

Neo4j unique IDs by tree with root node counter?


neo4j,uniqueidentifier
Is using a tree with a counter on the root node, to be referenced and incremented when creating new nodes, a viable way of managing unique IDs in Neo4j? In a previous question on performance on this forum (Neo4j merge performance VS create/set), the approach was described, and it occurred...

Symbols within a Neo4j case-insensitive regex


regex,neo4j,cypher
I'm storing e-mail addresses within some user nodes that I'm trying to match against, however the (?i) case-insensitive option doesn't appear to work when a + is added in the mail address. I use these to test, for example [email protected] Setting up test nodes: CREATE (uWithoutSymbol:USER { email: '[email protected]' })...

load csv in neo4j got java.lang.OutOfMemoryError: GC overhead limit exceeded exception


neo4j,cypher
I tried to load csv data into embedded neo4j database(v2.1.7、on windows). The csv file has 1,000,000 rows(1 Million). And data model is simple too. just as following: csv data "num1","num2","datatime" "13931345724","18409958023","2014-12-31 12:00:00" "13931345724","13710622859","2014-12-31 12:00:00" "13931345724","18919875049","2014-12-31 12:00:00" "13931345724","13460873081","2014-12-31 12:00:00" ... loading cypher sql USING PERIODIC COMMIT 5000 LOAD CSV FROM 'file:C:/tmpFiles/calls100w.csv'...

Class atributes not updating [node.js - express ]


javascript,node.js,class,express,neo4j
I have some troubles with a .js Object's atribute which is not updating when i ask it to. I'm new in the javascript world, so i hope my issue won't be tricky. First of all, this is a part of my Node class : Node = function (label, vals, db,...

Neo4J IndexProvider is deprecated


spring,neo4j,spring-boot,spring-data-neo4j
The project https://github.com/neo4j-contrib/developer-resources/tree/gh-pages/language-guides/java/spring-data-neo4j produces a warning: Class 'org.springframework.data.neo4j.support.index.IndexProvider' is marked deprecated I use Spring Boot. The managed version for spring-data-neo4j is 3.2.2.RELEASE Does anybody know how this deprecation can be resolved?

No hello World output for Neo4j


java,eclipse,neo4j
I am just starting out with Neo4j and this is my first stackoverflow question! I tried to run the Hello-World example in Eclipse with the user library of Neo4j. ( https://github.com/neo4j/neo4j/blob/2.2.2/community/embedded-examples/src/main/java/org/neo4j/examples/EmbeddedNeo4j.java) I only changed the DB_PATH='data/graph.db' ( because in my neo4j-server.properties :org.neo4j.server.database.location=data/graph.db) The output I got in the console is:...

Is it possible to connect a JPA implementation to a Neo4j specific version?


jpa,neo4j,datanucleus,kundera,hibernate-ogm
I have a Java project that use an embedded Neo4j database (NoSQL), version 2.0.0. I need to migrate this data for a traditional relational db (SQL). For this job, I thought that using an implementation of JPA could help. I found these three projects: Hibernate OGM DataNucleus Kundera But I...

WITH is required between MERGE and MATCH


neo4j
I am trying to setup a graph database, I have two csv files . I have successfully setup on of the csv's, the first one works fine. First CSV : LOAD CSV WITH HEADERS FROM "file:///C:/Users/rraina/Desktop/acc.csv" AS csvLine MERGE (providerName:ProviderName { name: csvLine.providerName }) MERGE (container:Container { name: csvLine.CONTAINER })...

Cyper - odd error when creating relationship


neo4j,cypher
I've got the following query, which responds with the very cryptic error message of "Invalid input 'H': expected 'i/I' (line 2, column 2)" Here's the query: CREATE UNIQUE (c:AccountCharge)-[:ACCOUNT_CHARGED]->(a:Account) WHERE (a.ID = "a7f7def6-8f2b-4b21-bfac-dab2f6e6eaae") AND (c.ID = "666b1865-e29d-455b-abb0-50d679952543") Both the nodes exist, and I can't see where there's a break anywhere,...

What is the most performant way to create the following MATCH statement and why?


neo4j,cypher
The question: What is the most performant way to create the following MATCH statement and why? The detailed problem: Let's say we have a Place node with a variable amount of properties and need to look up nodes from potentially billions of nodes by it's category. I'm trying to wrap...

Neo4j cypher query is too slow(too many dbhits) in bidirectional relationship


neo4j,cypher
Having the flowing data model: (Phone{phoneNumber})-[:CALL]-(Phone{phoneNumber}) (Person{personId})-[:KEEP]-(Phone{personId}) (Case{caseId})-[:INVOLVE]-(Person{personId}) all these three are using bidirectional relationship. And created index on phoneNumber/personId/caseId. User can input one or more strings which maybe represent as phoneNumber/ caseId/personId to query for their relationships(NOT consider direction and relationship depth can be 1 to 4). Here is...

How to add value in path Neo4j


neo4j
I want to add value path in neo4j graph such as (United States - Population - 2015) this path has value 320,970,000 and I want store in database This is what i want Can anyone help me? or any suggestion?...

neo4j Nodes Deleted (but not Actually)


neo4j,graph-databases
I would like to delete all the nodes of a certain label by executing match (P:ALabel) delete P; This returns the comment "No data returned." It also states how many Nodes deleted, and how long it took (5767 ms). However, the shell seems to stop responding after this, and I...

Neo4j: configure legacy index with cypher or property file


indexing,neo4j
I am using Neo4j-server and I am trying to find a way to configure a legacy index either with cypher or with a property. So far to enable the legacy indexing I just uncommented the related line in neo4j.properties file. How can I apply some of the configurations listed here...

End UNWIND statement in a Cypher Query


neo4j,cypher
If I have a cypher query that unwinds a parameter, everything after that portion of the query is called x number of times of the unwind. I'd like to figure out a way to end the unwind and continue with other things. MATCH (thing:Thing) UNWIND { names } AS name...