Наше текущее приложение работает под Spring Boot 1.5 (поставляется с Elastic Search 2.X)
Мы используем экземпляр поиска Embedded / In-Memory Elastic и используем Node client для подключения к Embedded / In-MemoryЭластичный экземпляр.
Мы планируем перейти от встроенного эластичного поиска к внешнему экземпляру эластичного поиска.
Это означает, что нам нужно будет перейти с Node Client и использовать либо Transport Client, либо Low-Level-Rest-Client или High-Level-Rest-Client
Наша Spring Boot Config для Node Client выглядит следующим образом:
@Configuration
@EnableElasticsearchRepositories
public class ElasticConfiguration {
@Bean
NodeBuilder nodeBuilder(){ return new NodeBuilder(); }
@Bean
public ElasticsearchOperations elasticsearchTemplate() throws IOException {
File tmpDir = File.createTempFile("elastic") );
Settings.Builder elasticsearchSettings = Settings.settingsBuilder()
.put("http.enabled", "true") // 1
.put("index.number_of_shards", "1")
.put("path.data", new File(tmpDir, "data").getAbsolutePath())
.put("path.logs", new File(tmpDir, "logs").getAbsolutePath())
.put("path.work", new File(tmpDir, "work").getAbsolutePath())
.put("path.home", tmpDir);
return new ElasticsearchTemplate(nodeBuilder().local(true)
.settings(elasticsearchSettings.build())
.node()
.client());
}
Вопрос:
1) Если мы перейдем от клиента Elastic Node к клиенту Elastic Transport, это будет означать значительные изменения кода для кодируемых в настоящее время фрагментов Elastic (вне класса эластичного конфига, который создает клиент узла)
2)Если мы перейдем с Node Client на использование Rest Client: i) Опять же, вне изменений кода Elastic Config, это будет означать серьезные изменения кода для текущего закодированного Elasкусочки тика?ii) Как будет выглядеть вышеупомянутый клиент SpringBoot Elastic Config for Rest?любой пример кода?