2016-03-09 1 views
0

Spring Data Neo4j 4 больше не поддерживает аннотацию @Index. С автономной базой данных Neo4j я должен самостоятельно развернуть индексы, используя свой REST или веб-интерфейс. Однако с базой данных в встроенном режиме таких интерфейсов нет. Нужно ли развертывать базу данных в автономном режиме, устанавливать соответствующие индексы, а затем использовать папку базы данных во встроенном режиме или использовать neo4j-shell для доступа к базе данных, развернутой SDN4 после остановки сервера с моим приложением?Как сделать индексы в SDN4 со встроенной базой данных?

ответ

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 
     } 
+0

Я полагаю, что такая прямая манипуляция возможно только с EmbeddedDriver? – Cob

+1

Доступ к GraphDatabaseService возможен только с помощью EmbeddedDriver, да. Обновлен мой ответ, чтобы включить пример кода для HttpDriver – Luanne

 Смежные вопросы

  • Нет связанных вопросов^_^