Как получить экземпляр GraphDatabaseService для локально работающего сервера neo4j
Я пробую neo4j обходной API. Все примеры онлайн работы с GraphDatabaseService
экземпляр, чтобы использовать его traversalDescription()
затем определить схему обхода.
Однако онлайн примеры ( как этот) использует GraphDatabaseFactory
чтобы получить GraphDatabaseService
экземпляр из встроенной базы данных / файла базы данных:
GraphDatabaseService graphDb = new GraphDatabaseFactory().newEmbeddedDatabase("/tmp/neo4j/");
Я хочу использовать его с экземпляром сервера neo4j, работающим локально. Обычно я использую это, вызывая методы на session
Получил экземпляр следующим образом:
Driver driver = GraphDatabase.driver( "bolt://localhost", AuthTokens.basic( "neo4j", "password" ) );
session session = driver.session();
Как мы получаем GraphDatabaseService
экземпляр из driver
или же session
экземпляр или другими способами, чтобы мы могли работать с локально запущенным экземпляром сервера neo4j? Или мы можем использовать API обхода только со встроенной базой данных neo4j?
1 ответ
GraphDatabaseService
происходит от внутреннего Java API Neo4j. Таким образом, чтобы получить его, вы должны быть на стороне базы данных (не на стороне клиента / драйвера).
Водители говорят только на Cypher (не на Java).
Для этого во многих примерах создается встроенная БД непосредственно в коде Java, поэтому у них есть доступ к службе.
Другим решением является создание процедуры Java, которая может быть вызвана в Cypher. Посмотрите на эту документацию: http://neo4j.com/docs/developer-manual/current/extending-neo4j/procedures/