Подключение к встроенной базе данных neo4j в качестве удаленной базы данных - PullRequest
0 голосов
/ 07 мая 2018

У меня есть проект загрузки Spring в Kotlin, использующий Neo4j 3.3.5 в качестве встроенной базы данных. База данных проверена на доступность (чтение-запись). Теперь я хочу получить доступ к базе данных как к удаленной базе данных с помощью neo4j desktop 1.0.24, чтобы графически просматривать узлы и, возможно, добавить свои собственные внешние данные.

В настоящее время я обращаюсь к базе данных, используя:

private val curdir = System.getProperty("user.dir")
val graphDb: GraphDatabaseService = GraphDatabaseFactory().newEmbeddedDatabase(File("${curdir}/database"))

Самое последнее руководство, которое я нашел для достижения того, что мне нужно, это this .

Короче говоря, конфигурация, представленная в руководстве выше:

GraphDatabaseService db = new GraphDatabaseFactory().newEmbeddedDatabaseBuilder(DB_DIR)
                .setConfig(ShellSettings.remote_shell_enabled, "true")
                .setConfig(ShellSettings.remote_shell_port, "5555")
                .newGraphDatabase();

, который, однако, не работает (неразрешенная ссылка ShellSettings).

После некоторого поиска в текущей (3.3) документации я обнаружил, что setConfig поставляется в 3 вариантах, два из которых устарели:

setConfig(Map<String,String> config) // deprecated
setConfig(String name, String value) // deprecated

setConfig(Setting<?> setting, String value)

Последний вариант - нет, но сам interface Setting<T> ожидает реконструкции и также устарел.

Попытка использовать setConfig, например, так:

    var graphDb = GraphDatabaseFactory().newEmbeddedDatabaseBuilder(File("${curdir}/database"))
        .setConfig("remote_shell_enabled", "true")
        .setConfig("remote_shell_port", "5555")
        .newGraphDatabase()

, хотя работает для Spring, не доступен из neo4j Desktop с конфигурациями:

Database Name: Database
Host: localhost
Bolt Port: 5555
username: blank
password: blank

Что еще можно попробовать?

1 Ответ

0 голосов
/ 08 мая 2018

Рабочий стол использует не shell, а bolt protocol. Поэтому вам необходимо включить его в конфигурации:

GraphDatabaseSettings.BoltConnector bolt = GraphDatabaseSettings.boltConnector( "0" );

GraphDatabaseService graphDb = new GraphDatabaseFactory()
        .newEmbeddedDatabaseBuilder( DB_PATH )
        .setConfig( bolt.type, "BOLT" )
        .setConfig( bolt.enabled, "true" )
        .setConfig( bolt.address, "localhost:7687" )
        .newGraphDatabase();

Вы также должны добавить библиотеку в свой проект:

<dependency>
    <groupId>org.neo4j</groupId>
    <artifactId>neo4j-bolt</artifactId>
    <version>3.3.5</version>
  </dependency>

Для получения дополнительной информации см. Документацию: https://neo4j.com/docs/java-reference/current/tutorials-java-embedded/#tutorials-java-embedded-bolt

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...