I have a database with 2.217.731 nodes and 3.127.475 relationships, where nodes are different equipment and relationships between them are like "CONNECTED_TO", "IS_INSIDE", etc.
I am trying to traverse the graph to find specific nodes. In Cypher it would look like
MATCH (n:Equipment)<-[IS_INSIDE*]-()<-[CONNECTED_TO*]-(m:Cable) where n.name = "name" RETURN m
using Java Core API, which as I know should be the fastest way to query Neo4j and take seconds, however it runs for tens of minutes.
I am using neo4j-2.0.0 and java version "1.7.0_45", max Java Heap size 7 gigs
Neo4j properties:
Map<String, String> config = new HashMap<>();
config.put( "neostore.nodestore.db.mapped_memory", "1800M" );
config.put( "neostore.relationshipstore.db.mapped_memory", "3G" );
config.put( "neostore.propertystore.db.mapped_memory", "100M" );
config.put( "neostore.propertystore.db.strings.mapped_memory", "150M" );
config.put( "neostore.propertystore.db.arrays.mapped_memory", "10M" );
inserter = BatchInserters.inserter("target/graphDb", config);
I am new in Neo4j and do not know how to tune it to achieve better performance.