Each index supports associating any number of key-value pairs with any number of entities (nodes or relationships), where each association between entity and key-value pair is performed individually. To begin with, let’s add a few nodes to the indexes:
// Actors Node reeves = graphDb.createNode(); actors.add( reeves, "name", "Keanu Reeves" ); Node bellucci = graphDb.createNode(); actors.add( bellucci, "name", "Monica Bellucci" ); // multiple values for a field actors.add( bellucci, "name", "La Bellucci" ); // Movies Node theMatrix = graphDb.createNode(); movies.add( theMatrix, "title", "The Matrix" ); movies.add( theMatrix, "year", 1999 ); Node theMatrixReloaded = graphDb.createNode(); movies.add( theMatrixReloaded, "title", "The Matrix Reloaded" ); movies.add( theMatrixReloaded, "year", 2003 ); Node malena = graphDb.createNode(); movies.add( malena, "title", "Malèna" ); movies.add( malena, "year", 2000 );
Note that there can be multiple values associated with the same entity and key.
Next up, we’ll create relationships and index them as well:
// we need a relationship type DynamicRelationshipType ACTS_IN = DynamicRelationshipType.withName( "ACTS_IN" ); // create relationships Relationship role1 = reeves.createRelationshipTo( theMatrix, ACTS_IN ); roles.add( role1, "name", "Neo" ); Relationship role2 = reeves.createRelationshipTo( theMatrixReloaded, ACTS_IN ); roles.add( role2, "name", "Neo" ); Relationship role3 = bellucci.createRelationshipTo( theMatrixReloaded, ACTS_IN ); roles.add( role3, "name", "Persephone" ); Relationship role4 = bellucci.createRelationshipTo( malena, ACTS_IN ); roles.add( role4, "name", "Malèna Scordia" );
Assuming we set the same key-value pairs as properties as well, our example graph looks like this:
Copyright © 2012 Neo Technology