Spring Data Neo4j 4 больше не поддерживает аннотацию @Index. С автономной базой данных Neo4j я должен самостоятельно развернуть индексы, используя свой REST или веб-интерфейс. Однако с базой данных в встроенном режиме таких интерфейсов нет. Нужно ли развертывать базу данных в автономном режиме, устанавливать соответствующие индексы, а затем использовать папку базы данных во встроенном режиме или использовать neo4j-shell для доступа к базе данных, развернутой SDN4 после остановки сервера с моим приложением?Как сделать индексы в SDN4 со встроенной базой данных?
0
A
ответ
4
Вы могли бы сделать то, что предложили, или вы также можете получить дескриптор GraphDatabaseService в своем приложении и создать индекс с помощью Java API. Вот пример:
EmbeddedDriver embeddedDriver = (EmbeddedDriver) Components.driver();
GraphDatabaseService databaseService = embeddedDriver.getGraphDatabaseService();
try (Transaction tx = databaseService.beginTx()) {
databaseService.index().forNodes(indexName);
...
tx.success();
}
Обновление на основе комментариев:
При использовании HttpDriver, то вы можете отправить запрос на отдых конечной
String uri = Components.driver().getConfiguration().getURI() +
"/db/data/...";
HttpPost httpPost = new HttpPost(uri);
//Construct the JSON statements
try {
httpPost.setEntity(new StringEntity(json.toString()));
HttpRequest.execute(httpClient, httpPost,
Components.driver().getConfiguration().getCredentials());
} catch (Exception e) {
//Handle any exceptions
}
Я полагаю, что такая прямая манипуляция возможно только с EmbeddedDriver? – Cob
Доступ к GraphDatabaseService возможен только с помощью EmbeddedDriver, да. Обновлен мой ответ, чтобы включить пример кода для HttpDriver – Luanne