Prev |  | Next

## 14.4. Add

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();
    reeves.setProperty( "name", "Keanu Reeves" );
    actors.add( reeves, "name", reeves.getProperty( "name" ) );
    Node bellucci = graphDb.createNode();
    bellucci.setProperty( "name", "Monica Bellucci" );
    actors.add( bellucci, "name", bellucci.getProperty( "name" ) );
    // multiple values for a field, in this case for search only
    // and not stored as a property.
    actors.add( bellucci, "name", "La Bellucci" );
    // Movies
    Node theMatrix = graphDb.createNode();
    theMatrix.setProperty( "title", "The Matrix" );
    theMatrix.setProperty( "year", 1999 );
    movies.add( theMatrix, "title", theMatrix.getProperty( "title" ) );
    movies.add( theMatrix, "year", theMatrix.getProperty( "year" ) );
    Node theMatrixReloaded = graphDb.createNode();
    theMatrixReloaded.setProperty( "title", "The Matrix Reloaded" );
    theMatrixReloaded.setProperty( "year", 2003 );
    movies.add( theMatrixReloaded, "title", theMatrixReloaded.getProperty( "title" )  );
    movies.add( theMatrixReloaded, "year", 2003 );
    Node malena = graphDb.createNode();
    malena.setProperty( "title", "Malèna" );
    malena.setProperty( "year", 2000 );
    movies.add( malena, "title", malena.getProperty( "title" ) );
    movies.add( malena, "year", malena.getProperty( "year" ) );

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 );
    role1.setProperty( "name", "Neo" );
    roles.add( role1, "name", role1.getProperty( "name" ) );
    Relationship role2 = reeves.createRelationshipTo( theMatrixReloaded, ACTS_IN );
    role2.setProperty( "name", "Neo" );
    roles.add( role2, "name", role2.getProperty( "name" ) );
    Relationship role3 = bellucci.createRelationshipTo( theMatrixReloaded, ACTS_IN );
    role3.setProperty( "name", "Persephone" );
    roles.add( role3, "name", role3.getProperty( "name" ) );
    Relationship role4 = bellucci.createRelationshipTo( malena, ACTS_IN );
    role4.setProperty( "name", "Malèna Scordia" );
    roles.add( role4, "name", role4.getProperty( "name" ) );

After these operations, our example graph looks like this:

Figure 14.1. Movie and Actor Graph

Copyright © 2013 Neo Technology

Prev | Up | Next
| Home |