Search in sources :

Example 16 with BatchInserter

use of org.neo4j.kernel.impl.batchinsert.BatchInserter in project graphdb by neo4j-attic.

the class TestLuceneBatchInsert method testSome.

@Test
public void testSome() throws Exception {
    // Different paths for each tests because there's a bug (on Windows)
    // causing _0.cfs file to stay open 
    String path = new File(PATH, "1").getAbsolutePath();
    BatchInserter inserter = new BatchInserterImpl(path);
    BatchInserterIndexProvider provider = new LuceneBatchInserterIndexProvider(inserter);
    BatchInserterIndex index = provider.nodeIndex("users", EXACT_CONFIG);
    Map<Integer, Long> ids = new HashMap<Integer, Long>();
    for (int i = 0; i < 100; i++) {
        long id = inserter.createNode(null);
        index.add(id, map("name", "Joe" + i, "other", "Schmoe"));
        ids.put(i, id);
    }
    for (int i = 0; i < 100; i++) {
        assertContains(index.get("name", "Joe" + i), ids.get(i));
    }
    assertContains(index.query("name:Joe0 AND other:Schmoe"), ids.get(0));
    assertContains(index.query("name", "Joe*"), ids.values().toArray(new Long[ids.size()]));
    provider.shutdown();
    inserter.shutdown();
    GraphDatabaseService db = new EmbeddedGraphDatabase(path);
    assertTrue(db.index().existsForNodes("users"));
    Index<Node> dbIndex = db.index().forNodes("users");
    for (int i = 0; i < 100; i++) {
        assertContains(dbIndex.get("name", "Joe" + i), db.getNodeById(ids.get(i)));
    }
    Collection<Node> nodes = new ArrayList<Node>();
    for (long id : ids.values()) {
        nodes.add(db.getNodeById(id));
    }
    assertContains(dbIndex.query("name", "Joe*"), nodes.toArray(new Node[nodes.size()]));
    assertContains(dbIndex.query("name:Joe0 AND other:Schmoe"), db.getNodeById(ids.get(0)));
    db.shutdown();
}
Also used : EmbeddedGraphDatabase(org.neo4j.kernel.EmbeddedGraphDatabase) GraphDatabaseService(org.neo4j.graphdb.GraphDatabaseService) BatchInserterImpl(org.neo4j.kernel.impl.batchinsert.BatchInserterImpl) HashMap(java.util.HashMap) Node(org.neo4j.graphdb.Node) ArrayList(java.util.ArrayList) BatchInserter(org.neo4j.kernel.impl.batchinsert.BatchInserter) BatchInserterIndexProvider(org.neo4j.graphdb.index.BatchInserterIndexProvider) BatchInserterIndex(org.neo4j.graphdb.index.BatchInserterIndex) File(java.io.File) Test(org.junit.Test)

Aggregations

Test (org.junit.Test)16 BatchInserter (org.neo4j.kernel.impl.batchinsert.BatchInserter)16 BatchInserterImpl (org.neo4j.kernel.impl.batchinsert.BatchInserterImpl)11 BatchInserterIndex (org.neo4j.graphdb.index.BatchInserterIndex)10 File (java.io.File)9 BatchInserterIndexProvider (org.neo4j.graphdb.index.BatchInserterIndexProvider)9 GraphDatabaseService (org.neo4j.graphdb.GraphDatabaseService)7 Node (org.neo4j.graphdb.Node)7 EmbeddedGraphDatabase (org.neo4j.kernel.EmbeddedGraphDatabase)5 SimpleRelationship (org.neo4j.kernel.impl.batchinsert.SimpleRelationship)4 HashMap (java.util.HashMap)2 HashSet (java.util.HashSet)2 Relationship (org.neo4j.graphdb.Relationship)2 Transaction (org.neo4j.graphdb.Transaction)2 ArrayList (java.util.ArrayList)1 Ignore (org.junit.Ignore)1 IndexManager (org.neo4j.graphdb.index.IndexManager)1 LuceneBatchInserterIndexProvider (org.neo4j.index.impl.lucene.LuceneBatchInserterIndexProvider)1