У меня проблемы с доступом к ранее созданным базам данных во встроенной Java-версии Neo4j. Я хотел бы открыть GraphDatabaseService, добавить несколько миллионов связей (без использования BatchInserter, только транзакции), а затем закрыть последнюю транзакцию и соединение. Это будет выглядеть примерно так:
public class startNeo4j{ …
public static void main (String[] args) {
GraphDatabaseService graphDb = new EmbeddedGraphDatabase( "data/test/base" );
Transaction tx = graphDb.beginTx();
IndexManager index = graphDb.index();
Index<Node> userIds = index.forNodes("userIds");
RelationshipIndex follows = index.forRelationships("follows");
[здесь я ввожу очень большой CSV (несколько миллионов отношений), также давая индексы отношений и userId]
tx.finish();
graphDb.shutdown(); }}
Что мне тогда нужно сделать, это открыть новый GraphDatabaseService и получить доступ ко всем этим данным, которые я только что вставил. Я проверил список Neo4j, и они подтвердили, что это возможно, но не предоставили никаких подробностей.
Я не хочу воссоздавать индекс, но когда я пытаюсь просто снова открыть его, я получаю ошибку, когда индекс (userIds сверху) «не может быть разрешен». В идеале, если бы кто-то имел представление о том, как будет выглядеть второй набор кода, это было бы здорово. Мой нефункциональный выглядит так:
public class examineNeo4j{
public static void main (String[] args){
GraphDatabaseService graphDb = new EmbeddedGraphDatabase( "data/test/base" );
Transaction tx = graphDb.beginTx();
IndexHits<Node> hits_final = userIds.get("userId","12");
Node testthis = hits_final.getSingle();
[или какой-либо другой запрос, который я хочу выполнить]
tx.finish();
graphDb.shutdown();}}
Любая помощь будет принята с благодарностью!