spring boot 集成 elasticsearch restClient 相关配置

最近公司领导让我研发使用rabbitMq 通过 logstash 将数据传输保存到elasticsearch的需求。

工作刚刚忙完,公司用的主要框架是spring boot。

下面跟小伙伴们分享一下,spring boot 集成 elasticsearchs 的详细配置。

以下是spring boot 的官网,如果时间不紧的小伙伴可以先研究下官网的文档,尝试一下自己摸索。

https://docs.spring.io/spring-data/elasticsearch/docs/3.2.6.RELEASE/reference/html/#reference

下面这张图是spring features 里面的

好了,现在开始给大家分享一下我自己项目里spring boot 整合elasticearch的例子。

这里我的项目是使用spring boot 2.2.x版本的,因为spring boot elasticsearch对版本是有要求的,为了大家避免踩坑

大家可以参照以下spring boot 官网 es 对应 spring boot 的版本

 

第一步:

在spring boot 配置文件 application.yml 或  application.properties以下配置:

#elasticsearch
spring.elasticsearch.rest.uris=elasticsearch的ip:9200
spring.elasticsearch.rest.username=elastic (这个账号名 elastic 是默认的账号名称)
spring.elasticsearch.rest.password=ea密码
spring.data.elasticsearch.repositories.enabled=true

下面的图片是spring boot官网的图片,大家可以看一下。

elasticsearch 有几个类型的客户端,大家如果不是使用restClient的话可以自行去spring boot 官网查看各个客户端的配置项。

第二部:

在项目中新建配置类,添加 spring boot 操作elasticsearch api的对象类。

@Configuration
public class RestClientConfig extends AbstractElasticsearchConfiguration {
    @Value("${spring.elasticsearch.rest.uris}")
    private String hostAndPort;

    @Override
    public RestHighLevelClient elasticsearchClient() {
        ClientConfiguration clientConfiguration = ClientConfiguration.builder()
                .connectedTo(hostAndPort)
                .withConnectTimeout(Duration.ofSeconds(5))
                .withSocketTimeout(Duration.ofSeconds(3))
                .withBasicAuth("elastic", "es密码")
                .build();
        return RestClients.create(clientConfiguration).rest();
    }

    // use the ElasticsearchEntityMapper
    @Bean
    @Override
    public EntityMapper entityMapper() {
        ElasticsearchEntityMapper entityMapper = new ElasticsearchEntityMapper(elasticsearchMappingContext(),
                new DefaultConversionService());
        entityMapper.setConversions(elasticsearchCustomConversions());

        return entityMapper;
    }
}

到此整合完成。大家可以在代码中注入 

@Autowired
private ElasticsearchOperations elasticsearchOperations;

或者注入

@Autowired
private ElasticsearchRestTemplate elasticsearchRestTemplate;

进行spring boot 对es API 的CRUD操作。

 

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值