У меня проблемы с доступом к ранее созданным базам данных во встроенной 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();}}
Любая помощь будет принята с благодарностью!