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

这篇具有很好参考价值的文章主要介绍了SpringBoot整合最新Elasticsearch Java API Client 7.16教程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


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

前言

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

一、Elasticsearch和Kibana 7.16版本安装

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


二、pom.xml文件引入依赖

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

<project>

  <dependencies>
    <dependency>
      <groupId>co.elastic.clients</groupId>
      <artifactId>elasticsearch-java</artifactId>
      <version>7.16.1</version>
    </dependency>
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-databind</artifactId>
      <version>2.12.3</version>
    </dependency>

     <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-core</artifactId>
            <version>2.13.0</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-annotations</artifactId>
            <version>2.13.0</version>
        </dependency>
  </dependencies>

</project>

三、代码实例

     以下是一些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";
        /**
         * 创建索引
         * @param index: 索引名称
         * @param aliases: 别名
         * @author : XI.QING
         * @date : 2021/12/28
         */
        client.indices().create(c -> c
                .index(index)
                .aliases(aliases, a -> a
                        .isWriteIndex(true)));
        /**
         * 创建数据文档
         * @param index: 索引名称
         * @author : XI.QING
         * @date : 2021/12/29
         */
        Map<String, String> 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);

        /**
         * 查询索引
         * @param indexList: 查询索引的名称
         * @param clazz: 返回结果的类型
         * @author : XI.QING
         * @date : 2021/12/29
         */
        // Object是一个po实例,如自定义的User、Book、Student等等
        List<Object> resultList = new ArrayList<>();
        SearchRequest searchRequest = SearchRequest.of(s -> s
                .index(index)
        );
        SearchResponse<Object> response = client.search(searchRequest, Object.class);
        if (response.hits() != null) {
            List<Hit<Object>> list = response.hits().hits();
            for (Hit<Object> hit :
                    list) {
                Object t = (Object) hit.source();
                resultList.add(t);
            }
        }
        /**
         * 删除索引
         * @param index: 索引名称
         * @author : XI.QING
         * @date : 2021/12/29
         */
        // 删除索引(范围大)
        client.delete(c -> c.index(index));
        // 删除索引和ID(范围小)
        client.delete(c -> c.index(index).id("1"));


    }
}

总结

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

到了这里,关于SpringBoot整合最新Elasticsearch Java API Client 7.16教程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SpringBoot集成Elasticsearch8.x(6)|(新版本Java API Client使用)

    章节 章节 第一章链接: SpringBoot集成Elasticsearch7.x(1)|(增删改查功能实现) 第二章链接: SpringBoot集成Elasticsearch7.x(2)|(复杂查询) 第三章链接: SpringBoot集成Elasticsearch7.x(3)|(aggregations之指标聚合查询) 第四章链接: SpringBoot集成Elasticsearch7.x(4)|(aggregations之分桶聚合

    2024年02月08日
    浏览(52)
  • # SpringBoot集成Elasticsearch8.5.x(5)|( 新版本Java API Client使用)

    章节 章节 第一章链接: SpringBoot集成Elasticsearch7.x(1)|(增删改查功能实现) 第二章链接: SpringBoot集成Elasticsearch7.x(2)|(复杂查询) 第三章链接: SpringBoot集成Elasticsearch7.x(3)|(aggregations之指标聚合查询) 第四章链接: SpringBoot集成Elasticsearch7.x(4)|(aggregations之分桶聚合

    2023年04月13日
    浏览(50)
  • SpringBoot集成Elasticsearch8.x(7)|(新版本Java API Client使用完整示例)

    章节 第一章链接: SpringBoot集成Elasticsearch7.x(1)|(增删改查功能实现) 第二章链接: SpringBoot集成Elasticsearch7.x(2)|(复杂查询) 第三章链接: SpringBoot集成Elasticsearch7.x(3)|(aggregations之指标聚合查询) 第四章链接: SpringBoot集成Elasticsearch7.x(4)|(aggregations之分桶聚合查询)

    2024年02月16日
    浏览(60)
  • ElasticSearch系列——Elasticsearch Java API Client

    这是用于Elasticsearch的官方Java API客户端的文档。客户端为所有Elasticsearch API提供强类型请求和响应。我们要注意原来的HighRestAPIClient以及停用了,这是趋势,包括SpringData-ElasticSearch4.4.5之后配合ES8的推出也会更换 https://www.elastic.co/guide/en/elasticsearch/client/java-api-client/7.17/indexing.html

    2024年02月01日
    浏览(44)
  • Elasticsearch-06-Elasticsearch Java API Client-Elasticsearch 8.0 的api

    在 Elasticsearch7.15版本之后,Elasticsearch官方将它的 高级客户端 RestHighLevelClient 标记为弃用状态。同时推出了全新的 Java API客户端 Elasticsearch Java API Client ,该客户端也将在 Elasticsearch8.0及以后版本中成为官方推荐使用的客户端。 Elasticsearch Java API Client 支持除 Vector tile search API 和

    2024年04月11日
    浏览(37)
  • 【Elasticsearch学习笔记五】es常用的JAVA API、es整合SpringBoot项目中使用、利用JAVA代码操作es、RestHighLevelClient客户端对象

    目录 一、Maven项目集成Easticsearch 1)客户端对象 2)索引操作 3)文档操作 4)高级查询 二、springboot项目集成Spring Data操作Elasticsearch 1)pom文件 2)yaml 3)数据实体类 4)配置类 5)Dao数据访问对象 6)索引操作 7)文档操作 8)文档搜索 三、springboot项目集成bboss操作elasticsearch

    2023年04月09日
    浏览(51)
  • Elasticsearch 7.17 Java Client Api

    Elasticsearch官方建议使用新版的Java Api Client替代原有的Rest客户端,这篇文章会简单讲解 新版api的使用。 The Elasticsearch Java API Client is an entirely new client library that has no relation to the older High Level Rest Client (HLRC). This was a deliberate choice to provide a library that is independent from the Elasticsearc

    2024年02月11日
    浏览(43)
  • SpringBoot整合Elasticsearch(最新最全,高效安装到使用)

    为了避免使用的Elasticsearch版本和SpringBoot采用的版本不一致导致的问题,尽量使用一致的版本。下表是对应关系: 我的SpringBoot版本: 所以选择对应Elasticsearch版本为7.12.0。 Elasticsearch各版本下载 Elasticsearch7.12.0官网下载 下载上面链接的安装包 解压到任意目录 启动es /bin/elasti

    2024年02月07日
    浏览(38)
  • Elasticsearch8.x版本Java客户端Elasticsearch Java API Client中常用API练习

    在Es7.15版本之后,es官方将它的高级客户端RestHighLevelClient标记为弃用状态。同时推出了全新的java API客户端Elasticsearch Java API Client,该客户端也将在Elasticsearch8.0及以后版本中成为官方推荐使用的客户端。 Elasticsearch Java API Client支持除Vector title search API和Find structure API之外的所有

    2024年04月11日
    浏览(49)
  • Elasticsearch Java API Client 8.x使用方式

    客户端的变化 众所周知,Elasticsearch是基于Lucene的,提供了更高层次的封装、分布式方面的扩展,以及REST API来方便使用,我们先来看看java client的变化: 从图中可以看成,在8.x版本中,Elasticsearch提供了全新的Java API Client,用来代替之前广为使用的High Level Client,根据官网说法

    2024年02月07日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包