栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SpringBoot整合最新Elasticsearch Java API Client 7.16教程

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SpringBoot整合最新Elasticsearch Java API Client 7.16教程

文章目录
  • 前言
  • 一、Elasticsearch和Kibana 7.16版本安装
  • 二、pom.xml文件引入依赖
  • 三、代码实例
  • 总结

前言

    最新在学习SpringBoot整合es的一些知识,浏览了网上的一些资料,发现全都是es很久之前的版本了,其中比较流行的是Java REST Client的High Level Rest Client版本,但是官方文档的说明中,已经申明该版本即将废弃,不再进行维护了。可见:官方文档
    目前官方推荐的版本是Java Client 7.16,但是官方的API文档写的太蛋疼了,搜遍了网上的资料,也没有最新7.16版本的相关说明及整和代码实例。于是本人在琢磨几天之后,终于顺利跑通了一些代码,并完成了几个简单的代码实例。因此在此抛砖引玉,给大家提供一些参考。

一、Elasticsearch和Kibana 7.16版本安装

     Elasticsearch和Kibana客户端的安装网上有很多资料,也可以参考我之前写的文章:Docker安装Elasticsearch和Kibana,文章里使用的7.6.2版本,改成7.16即可。


二、pom.xml文件引入依赖

     官方推荐的是引入前两个依赖即可,但是在项目启动过程中,可能会报缺少jackson的错误, 所以额外添加了两个jackson的依赖。



  
    
      co.elastic.clients
      elasticsearch-java
      7.16.1
    
    
      com.fasterxml.jackson.core
      jackson-databind
      2.12.3
    

     
            com.fasterxml.jackson.core
            jackson-core
            2.13.0
        
        
            com.fasterxml.jackson.core
            jackson-annotations
            2.13.0
        
  


三、代码实例

     以下是一些Java API操作ES的实例,都是非常基础的操作方法为大家提供参考,其中一些复杂的操作,如:查找时添加排序、关键词等筛选条件,这些复杂的操作可以参考官方文档,https://www.elastic.co/guide/en/elasticsearch/client/java-api-client/current/api-conventions.html
再次吐槽一下官方的文档,一点都不详细,对像我一样的新手非常不友好。

package com.xiqing.project.elasticsearch;

import co.elastic.clients.elasticsearch.ElasticsearchClient;
import co.elastic.clients.elasticsearch.core.CreateRequest;
import co.elastic.clients.elasticsearch.core.SearchRequest;
import co.elastic.clients.elasticsearch.core.SearchResponse;
import co.elastic.clients.elasticsearch.core.search.Hit;
import co.elastic.clients.json.jackson.JacksonJsonpMapper;
import co.elastic.clients.transport.ElasticsearchTransport;
import co.elastic.clients.transport.rest_client.RestClientTransport;
import org.apache.http.HttpHost;
import org.elasticsearch.client.RestClient;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class ElasticsearchTest {
    public static void main(String[] args) throws Exception {
        // 部署ES的ip地址和端口
        RestClient restClient = RestClient.builder(
                new HttpHost("47.100.160.51", 9200)).build();

        ElasticsearchTransport transport = new RestClientTransport(
                restClient, new JacksonJsonpMapper());

        ElasticsearchClient client = new ElasticsearchClient(transport);

        // 索引
        String index = "user-index";
        // 索引别名
        String aliases = "user-aliases-01";
        
        client.indices().create(c -> c
                .index(index)
                .aliases(aliases, a -> a
                        .isWriteIndex(true)));
        
        Map map = new HashMap<>();
        map.put("username", "张三");
        map.put("address", "江苏省南京市");
        CreateRequest dataStreamResponse = CreateRequest.of(e -> e
                .index(index)
                .id("1")
                .type("_doc")
                .document(map));
        client.create(dataStreamResponse);

        
        // Object是一个po实例,如自定义的User、Book、Student等等
        List resultList = new ArrayList<>();
        SearchRequest searchRequest = SearchRequest.of(s -> s
                .index(index)
        );
        SearchResponse response = client.search(searchRequest, Object.class);
        if (response.hits() != null) {
            List> list = response.hits().hits();
            for (Hit hit :
                    list) {
                Object t = (Object) hit.source();
                resultList.add(t);
            }
        }
        
        // 删除索引(范围大)
        client.delete(c -> c.index(index));
        // 删除索引和ID(范围小)
        client.delete(c -> c.index(index).id("1"));


    }
}

 

总结

以上就是文章的全部内容,写这篇文章的原因是因为网上没有最新的Elasticsearch Java API Client 7.16相关教程,同时官方文档提供的示例也非常少,很不友好,所以抛转引玉一下,同时给他人提供一些参考。同时也欢迎各位到我的个人博客来逛一逛:西清的小屋

转载请注明:文章转载自 www.mshxw.com
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号