nodeBuilder () удален Elasticsearch, но все же документация spring-data -asticsearch содержит конфигурацию, которая использует nodeBuilder () - PullRequest
0 голосов
/ 24 апреля 2019

Я следовал документации Spring-Data-Elasticseach и следовал конфигурации, указанной в ссылке выше.

@Configuration
@EnableElasticsearchRepositories(basePackages = "org/springframework/data/elasticsearch/repositories")
static class Config {

    @Bean
    public ElasticsearchOperations elasticsearchTemplate() {
        return new ElasticsearchTemplate(nodeBuilder().local(true).node().client());
    }
}

Поскольку импорт для nodeBuilder() не упоминается в документации, я предположил, что он org.elasticsearch.node.NodeBuilder.*, как указано в asticsearch Java API .

Но в более поздних выпусках API изменился и NodeBuilder больше не существует. Так почему / как пружинная документация все еще использует NodeBuilder?

Если это проблема с документацией, какова правильная конфигурация?

Зависимости, которые я использую

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>

с загрузочной версией 2.1.1.RELEASE

1 Ответ

2 голосов
/ 06 мая 2019

Это похоже на проблему с документацией. Я поднял ДАННЫЕ-574 , чтобы исправить это.

В Spring Boot 2.1 обычным способом создания компонента Client является установка свойства spring.data.elasticsearch.cluster-nodes. За кулисами это создаст Client как org.elasticsearch.client.transport.TransportClient экземпляр.

Вы также можете определить этот боб самостоятельно, если хотите.

В будущем Elasticsearch также не одобрит TransportClient. На этом этапе вам нужно использовать REST API более высокого уровня. Подробнее см. https://jira.spring.io/browse/DATAES-407.

...