spring-data-elasticsearch -; restHighLevelClient
Posted parkdifferent
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring-data-elasticsearch -; restHighLevelClient相关的知识,希望对你有一定的参考价值。
在哪里可以找到 spring-data-elasticsearch 配置属性的参考?
【中文标题】在哪里可以找到 spring-data-elasticsearch 配置属性的参考?【英文标题】:Where can I find the reference for the spring-data-elasticsearch configuration properties? 【发布时间】:2021-07-05 20:52:42 【问题描述】:在网上,我可以看到spring-data-elasticsearch
有一些配置属性,您可以在application.properties
中定义这些属性,例如:
spring.data.elasticsearch.repositories.enabled=true
spring.data.elasticsearch.cluster-nodes=localhost:9300
spring.data.elasticsearch.cluster-name=elasticsearch
elasticsearch.index.name=my_index
elasticsearch.user.type=user
但是,在 IntelliJ 中,我可以看到,例如:
spring.data.elasticsearch.cluster-nodes=localhost:9300
spring.data.elasticsearch.cluster-name=elasticsearch
... 实际上现在已被弃用。但是,我似乎无法在 spring-data-elasticsearch
文档中找到任何内容,这些文档要么列出了可用的属性,要么列出了应替换为已弃用的属性。
欢迎任何帮助。提前致谢!
【问题讨论】:
This 可能会有所帮助。 【参考方案1】:根据Spring docs for Spring Data Elasticsearch:
TransportClient
自 Elasticsearch 7 起已弃用,并将 在 Elasticsearch 8 中删除。 Spring Data Elasticsearch 将支持TransportClient
只要在使用过的 Elasticsearch 中可用 版本,但自版本4.0
起已弃用使用它的类
注意: 这意味着 Spring 团队还将弃用 Elasticsearch 7 支持的旧属性。
现在,Spring 团队建议开发人员使用RestHighLevelClient
,它现在是Elasticsearch
的默认客户端。它是TransportClient
的直接替代品,因为它接受并返回相同的请求/响应对象。
下面给出的演示代码:
@Configuration
public class ElasticSearchConfig extends AbstractElasticsearchConfiguration
@Override
@Bean
public RestHighLevelClient elasticsearchClient()
ClientConfiguration clientConfiguration = ClientConfiguration.builder()
.connectedTo("localhost:9300")
.build();
return RestClients.create(clientConfiguration).rest();
以上配置需要通过覆盖默认bean来创建。此外,您不需要明确提供集群名称。它会自动找到它。
阅读以上链接文档以供参考,因为它包含所有必要信息。
也可以参考:Elastic Search Java High Level REST Client Reference【讨论】:
【参考方案2】:这些属性来自spring-boot-starter-data-elasticsearch
,而不是来自spring-data-elasticsearch
。
正如@code_mechanic 所建议的,在Spring Boot Reference Documentation > Common Application properties > Data 中,您将找到可用于当前 版本的Spring Boot 的属性。这里有一些与 Elasticsearch 相关的属性:
Key Default Value Description spring.data.elasticsearch.client.reactive.connection-timeout Connection timeout. spring.data.elasticsearch.client.reactive.endpoints Comma-separated list of the Elasticsearch endpoints to connect to. spring.data.elasticsearch.client.reactive.max-in-memory-size Limit on the number of bytes that can be buffered whenever the input stream needs to be aggregated. spring.data.elasticsearch.client.reactive.password Credentials password. spring.data.elasticsearch.client.reactive.socket-timeout Read and Write Socket timeout. spring.data.elasticsearch.client.reactive.use-ssl false
Whether the client should use SSL to connect to the endpoints. spring.data.elasticsearch.client.reactive.username Credentials username. spring.data.elasticsearch.repositories.enabled true
Whether to enable Elasticsearch repositories. spring.elasticsearch.rest.connection-timeout 1s
Connection timeout. spring.elasticsearch.rest.password Credentials password. spring.elasticsearch.rest.read-timeout 30s
Read timeout. spring.elasticsearch.rest.uris [http://localhost:9200]
Comma-separated list of the Elasticsearch instances to use. spring.elasticsearch.rest.username Credentials username.
Spring Boot之前版本的参考文档可以在https://spring.io/projects/spring-boot#learn找到。
您可能还对Spring Boot Docs > Spring Boot Features > Working With Nosql Technologies > Elasticsearch 感兴趣,它描述了如何使用 REST 客户端和反应式 REST 客户端进行连接、您需要的依赖项和配置属性。
【讨论】:
以上是关于spring-data-elasticsearch -; restHighLevelClient的主要内容,如果未能解决你的问题,请参考以下文章
使用 spring-data-elasticsearch 的多租户
spring-data-elasticsearch 在多个索引中搜索特定字段
springboot 集成 spring-data-elasticsearch
nodeBuilder() 已被 Elasticsearch 删除,但 spring-data-elasticsearch 文档仍然包含使用 nodeBuilder() 的配置