Search in sources :

Example 11 with BatchInserterImpl

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

the class TestLuceneBatchInsert method testCanIndexRelationships.

@Test
public void testCanIndexRelationships() {
    BatchInserter inserter = new BatchInserterImpl(new File(PATH, "5").getAbsolutePath());
    BatchInserterIndexProvider indexProvider = new LuceneBatchInserterIndexProvider(inserter);
    BatchInserterIndex edgesIndex = indexProvider.relationshipIndex("edgeIndex", stringMap("provider", "lucene", "type", "exact"));
    long nodeId1 = inserter.createNode(map("ID", "1"));
    long nodeId2 = inserter.createNode(map("ID", "2"));
    long relationshipId = inserter.createRelationship(nodeId1, nodeId2, EdgeType.KNOWS, null);
    edgesIndex.add(relationshipId, map("EDGE_TYPE", EdgeType.KNOWS.name()));
    edgesIndex.flush();
    assertEquals(String.format("Should return relationship id"), new Long(relationshipId), edgesIndex.query("EDGE_TYPE", EdgeType.KNOWS.name()).getSingle());
    indexProvider.shutdown();
    inserter.shutdown();
}
Also used : BatchInserter(org.neo4j.kernel.impl.batchinsert.BatchInserter) BatchInserterImpl(org.neo4j.kernel.impl.batchinsert.BatchInserterImpl) BatchInserterIndexProvider(org.neo4j.graphdb.index.BatchInserterIndexProvider) BatchInserterIndex(org.neo4j.graphdb.index.BatchInserterIndex) File(java.io.File) Test(org.junit.Test)

Example 12 with BatchInserterImpl

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

the class TestLuceneBatchInsert method triggerNPEAfterFlush.

@Test
public void triggerNPEAfterFlush() {
    BatchInserter inserter = new BatchInserterImpl(new File(PATH, "6").getAbsolutePath());
    BatchInserterIndexProvider provider = new LuceneBatchInserterIndexProvider(inserter);
    BatchInserterIndex index = provider.nodeIndex("Node-exact", EXACT_CONFIG);
    Map<String, Object> map = map("name", "Something");
    long node = inserter.createNode(map);
    index.add(node, map);
    index.flush();
    assertContains(index.get("name", "Something"), node);
    provider.shutdown();
    inserter.shutdown();
}
Also used : BatchInserter(org.neo4j.kernel.impl.batchinsert.BatchInserter) BatchInserterImpl(org.neo4j.kernel.impl.batchinsert.BatchInserterImpl) BatchInserterIndexProvider(org.neo4j.graphdb.index.BatchInserterIndexProvider) BatchInserterIndex(org.neo4j.graphdb.index.BatchInserterIndex) File(java.io.File) Test(org.junit.Test)

Example 13 with BatchInserterImpl

use of org.neo4j.kernel.impl.batchinsert.BatchInserterImpl 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

BatchInserterImpl (org.neo4j.kernel.impl.batchinsert.BatchInserterImpl)13 Test (org.junit.Test)12 BatchInserter (org.neo4j.kernel.impl.batchinsert.BatchInserter)11 File (java.io.File)10 BatchInserterIndex (org.neo4j.graphdb.index.BatchInserterIndex)10 BatchInserterIndexProvider (org.neo4j.graphdb.index.BatchInserterIndexProvider)9 EmbeddedGraphDatabase (org.neo4j.kernel.EmbeddedGraphDatabase)6 GraphDatabaseService (org.neo4j.graphdb.GraphDatabaseService)5 Node (org.neo4j.graphdb.Node)5 HashMap (java.util.HashMap)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