全栈工程师_java全栈工程师_全栈开发者学习经验总结

  • 首页
  • 开发工具
    • 软件安装
    • 软件使用
  • 前端
    • Ionic
    • Android
    • Capacitor
    • Angular
    • Vue
    • 苹果开发者账号
  • 后端
    • Java
    • Python
    • MyBatis
    • Spring
    • SpringBoot
    • SpringMVC
    • SpringCloud
  • 服务器
    • Linux
    • MySQL
    • Nginx
    • Tomcat
    • Docker
  • 其他
    • 生活碎片
    • 报错专区
  • 我
lipsuper
专注产出高质量原创手打文章
  1. 首页
  2. 后端
  3. SpringBoot
  4. 正文

ES Java High Level REST Client与SpringBoot整合

2021年1月6日 1333点热度 5人点赞 0条评论

 

本文基于springboot2.2.4.RELEASE

在java中操作ES,我选用了elasticsearch-rest-high-level-client,它的初级使用很简单。

 

配置

首先导入maven依赖

<properties>
    <java.version>1.8</java.version>
    <elasticsearch.version>7.10.1</elasticsearch.version>
</properties>

<dependencies>

    <dependency>
        <groupId>org.elasticsearch.client</groupId>
        <artifactId>elasticsearch-rest-high-level-client</artifactId>
        <version>7.10.1</version>
    </dependency>

</dependencies>

需要注意的是第三行代码<elasticsearch.version>7.10.1</elasticsearch.version>这个版本要写,因为springboot自带的es依赖版本不一定适合你,这里写你自己的版本来覆盖掉springboot默认的版本。

 

创建配置类

import org.apache.http.HttpHost;
import org.elasticsearch.client.RestClient;
import org.elasticsearch.client.RestHighLevelClient;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class LipsuperElasticsearchConfig {
  	private static final RequestOptions COMMON_OPTIONS;
    static {
        RequestOptions.Builder builder = RequestOptions.DEFAULT.toBuilder();
        COMMON_OPTIONS = builder.build();
    }
    @Bean
    public RestHighLevelClient esClient() {
        RestHighLevelClient client = new RestHighLevelClient(
                RestClient.builder(
                  			// 单个节点配置
                        new HttpHost("你的ES所在的IP地址", 9200, "http")));

        return client;
    }
}

 

就可以了。在使用到的地方自动注入这个RestHighLevelClient就可以了。

 

使用

接下来就可以在用到的地方引入RestHighLevelClient进行操作了。比如:

@Service
public class xxxServiceImpl implements xxxService {
    @Autowired
    private RestHighLevelClient restHighLevelClient;
  
  	// 下面就是实际的操作,比如保存用户信息
    @Override
    public boolean productStatusUp(List<SkuESModel> skuESModels) throws IOException {
        // 往es中批量保存数据
        BulkRequest bulkRequest = new BulkRequest();
        // User是我假设的,假设User里面包含id,name,age等信息
        for (User user : Users) {
            IndexRequest indexRequest = new IndexRequest("userinfo");
            indexRequest.id(user.getUserId().toString());
            String u = JSON.toJSONString(user);
            indexRequest.source(u, XContentType.JSON);
        }
        BulkResponse bulk = restHighLevelClient.bulk(bulkRequest, LipsuperElasticsearchConfig.COMMON_OPTIONS);

        // 可选操作
        boolean b = bulk.hasFailures();

        return b;
    }
}

 

好了,一个简短的Java High Level REST Client整合SpringBoot就是这样。

 

本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: 保姆级指导
最后更新:2021年1月6日

lipsuper

这个人很懒,什么都没留下

点赞
< 上一篇

文章评论

取消回复

COPYRIGHT © 2021 lipsuper.com. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

渝ICP备2021004735号-1

渝公网安备 50011202502306号