我在 Neo4j 中使用/创建索引时遇到问题。
我正在做大量插入,所以使用 BatchInserter - import org.neo4j.unsafe.batchinsert.BatchInserter;
但是 - 插入后,索引不出现?
我创建这样的索引:
BatchInserter inserter = BatchInserters.inserter( DB_CONNECTION_STRING );
Label personLabel = DynamicLabel.label( "Person" );
Label transactionLabel = DynamicLabel.label( "Transaction" );
BatchInserter inserter = inserter.createDeferredSchemaIndex( personLabel ).on( "personid" ).create();
BatchInserter inserter = inserter.createDeferredSchemaIndex( transactionLabel ).on( "txid" ).create();
然后,插入节点...
Map<String, Object> properties = new HashMap<>();
properties.put( "personid", myPersonID );
long nodeID = inserter.createNode( properties, personLabel );
批量插入器完成正常。
我已经注册了关机钩子,它应该完成批量插入和索引,对吗?
Runtime.getRuntime().addShutdownHook( new Thread() {
@Override
public void run() {
inserter.shutdown();
} } );
最后,我尝试了 Cypher 查询。但是,它报告索引不存在。
START n=node:Person(personid='12345')
MATCH (n)-[:MYEDGE]-(x)
RETURN count(x);
结果:
STATEMENT_EXECUTION_ERROR: Index `Person` does not exist
有什么线索???