Elasticsearch写入数据之elasticsearch-java

这篇具有很好参考价值的文章主要介绍了Elasticsearch写入数据之elasticsearch-java。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在《Elasticsearch8.4.2在windows系统下的安装介绍》中介绍了如何安装ES,那么安装成功后改如何将数据写入到ES呢?写入ES数据的方式有很多,本次将介绍一种写入方式elasticsearch-java来写入数据到ES,elasticsearch-java是官方提供的java sdk写入方式,用户只需要配置相关参数就可以方便写入数据,源码地址:https://github.com/elastic/elasticsearch-java

前期需要引入相关的jar包到项目中,如下所示:

<dependency>
	<groupId>co.elastic.clients</groupId>
	<artifactId>elasticsearch-java</artifactId>
	<version>8.4.2</version>
	<exclusions>
		<exclusion>
			<groupId>org.apache.httpcomponents</groupId>
			<artifactId>httpcore-nio</artifactId>
		</exclusion>
		<exclusion>
		    <groupId>org.apache.httpcomponents</groupId>
		    <artifactId>httpcore</artifactId>
	    </exclusion>
    </exclusions>
</dependency>
<dependency>
	<groupId>org.apache.httpcomponents</groupId>
	<artifactId>httpcore</artifactId>
    <version>4.4.15</version>
</dependency>
<dependency>
	<groupId>org.apache.httpcomponents</groupId>
	<artifactId>httpcore-nio</artifactId>
	<version>4.4.15</version>
	<exclusions>
		<exclusion>
			<groupId>org.apache.httpcomponents</groupId>
			<artifactId>httpcore</artifactId>
		</exclusion>
	</exclusions>
</dependency>

编写如下代码

        // Create the low-level client
        String host = "localhost";
        int port = 9200;

        //tag::create-secure-client-fingerprint
        String fingerprint = "指纹信息";
        SSLContext sslContext = TransportUtils.sslContextFromCaFingerprint(fingerprint);
        BasicCredentialsProvider credsProv = new BasicCredentialsProvider(); // <2>
        credsProv.setCredentials(
                AuthScope.ANY, new UsernamePasswordCredentials(ES用户名, ES密码)
        );

        RestClient restClient = RestClient
                .builder(new HttpHost(host, port, "https")) // <3>
                .setHttpClientConfigCallback(hc -> hc
                        .setSSLContext(sslContext) // <4>
                        .setDefaultCredentialsProvider(credsProv)
                )
                .build();

        // Create the transport and the API client
        ElasticsearchTransport transport = new RestClientTransport(restClient, new JacksonJsonpMapper());
        ElasticsearchClient client = new ElasticsearchClient(transport);
        try {
            String tradeMsg = "{\"a\":\"b\"}";
            IndexRequest<JsonData> request = IndexRequest.of(i -> i
                    .index("索引名称")
                    .document(JsonData.fromJson(tradeMsg))
            );
            client.index(request);
        } catch (IOException e) {
            e.printStackTrace();
        }

其中有几个地方必须先准备好,用户名&密码、指纹信息和索引名称。

用户名&密码

在安装ES时默认会生成ES的用户名和密码,将它copy出来填写到代码的对应的位置上,安装过程可以参考之前的介绍

指纹信息

在安装ES时默认会生成指纹信息,将它copy出来填写到代码的对应的位置上,安装过程可以参考之前的介绍,本次是默认安装ES,没有做过任何的其它变更,那么需要通过以HTTPS的方式去连接ES服务端,其它方式可能连接不上。代码中演示的方式是通过指纹信息获取SSL上下文信息,然后以HTTPS的方式访问ES服务端。

索引名称

相当于定义数据库表名,代码中需要定义一个索引的名称,告诉系统需要将数据写入到哪里,也可以通过Kibana的开发者工具预先创建好索引并定义好各个字段的类型。

具体elasticsearch-java的使用方式,官方也有文档介绍:Basic authentication | Elasticsearch Java API Client [8.4] | Elastic文章来源地址https://www.toymoban.com/news/detail-670676.html

到了这里,关于Elasticsearch写入数据之elasticsearch-java的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Elasticsearch:数据写入

    Elasticsearch(简称ES)是一个开源的分布式搜索和分析引擎,广泛应用于日志分析、全文搜索、实时数据分析等场景。在使用ES时,了解数据写入的流程和原理对于优化性能和确保数据一致性至关重要。本文将详细介绍ES的数据写入流程,包括数据准备、索引创建、文档写入和刷

    2024年02月14日
    浏览(8)
  • Elasticsearch 基本使用(一)写入数据

    Elasticsearch 基本使用(一)写入数据

    my_index :索引名 _doc :文档类型,现在只有一个类型,都是_doc 1 :文档id(PUT时,必须,POST时不是必须) PUT 为修改操作; 必须指定文档id POST 为保存操作; 指定id时,以该id保存;id存在则修改,不存在则新增。 未指定id时,直接新增,并随机生成一个id。 写入数据时,如果

    2024年02月10日
    浏览(10)
  • Elasticsearch:数据是如何被写入的?

    Elasticsearch:数据是如何被写入的?

    在我之前的文章 “Elasticsearch:索引数据是如何完成的”,我详述了如何索引 Elasticsearch 的数据的。在今天的文章中,我将从另外一个视角来诠释如何写入数据到 Elasticsearch。更多关于 Elasticsearch 数据操作,请阅读文章 “Elasticsearch:彻底理解 Elasticsearch 数据操作”。 发送写请

    2024年02月08日
    浏览(10)
  • ElasticSearch搜索引擎:数据的写入流程

    ElasticSearch搜索引擎:数据的写入流程

    (1)ES 客户端选择一个节点 node 发送请求过去,这个节点就是协调节点 coordinating node  (2)协调节点对 document 进行路由,通过 hash 算法计算出数据应该落在哪个分片 shard 上,然后根据节点上维护的 shard 信息,将请求转发到对应的实际处理节点node上 shard = hash(document_id) %

    2023年04月14日
    浏览(13)
  • ElasticSearch第十五讲 ES数据写入过程和写入原理以及数据如何保证一致性

    ES 数据并发冲突控制是基于的乐观锁和版本号的机制 一个document第一次创建的时候,它的_version内部版本号就是1;以后,每次对这个document执行修改或者删除操作,都会对这个_version版本号自动加1;哪怕是删除,也会对这条数据的版本号加1(假删除)。 对于更新操作 客户端对

    2024年02月12日
    浏览(7)
  • Elasticsearch大数据量写入调优和原理解析

    Elasticsearch大数据量写入调优和原理解析

    千万、亿级别数据批量写入ES的调优和原理解析 Elasticsearch version (bin/elasticsearch --version): 7.8   Plugins installed: kibana   JVM version (java -version): java version \\\"1.8.0_102\\\" OS version (uname -a if on a Unix-like system): Linux 4.9.0-4-amd64 #1 SMP Debian 4.9.65-3 (2017-12-03) x86_64 GNU/Linux ES节点:3台,4C16G,JVM8G E

    2023年04月12日
    浏览(5)
  • Observability:如何把 Elastic Agent 采集的数据输入到 Logstash 并最终写入到 Elasticsearch

    Observability:如何把 Elastic Agent 采集的数据输入到 Logstash 并最终写入到 Elasticsearch

    在之前的文章 “安装独立的 Elastic Agents 并采集数据 - Elastic Stack 8.0”,我们详述了如何使用 No Fleet Server 来把数据写入到 Elasticsearch 中。在今天的文章中,我们来详述如下使用 Elastic Agents 在独立(standalone)模式下来采集数据并把数据最终通过 Logstash 来写入到 Elasticsearch 中去

    2024年02月11日
    浏览(15)
  • Elasticsearch进阶篇(一):Elasticsearch写入原理深入详解

    Elasticsearch进阶篇(一):Elasticsearch写入原理深入详解

    引用官方文档地址:分片内部原理 | Elasticsearch: 权威指南 | Elastic 索引是 Elasticsearch 存储、组织和搜索数据的逻辑容器。它类似于 MySQL 中的 数据表 ,一个 Elasticsearch 集群可以包含多个索引。从 Elasticsearch 7.x 开始,Elasticsearch 不再支持多个 type且默认为_doc,并在之后的版本中

    2024年04月10日
    浏览(12)
  • 【ElasticSearch】 ElasticSearch serverless架构介绍(查询写入分离,计算存储分离)

    【ElasticSearch】 ElasticSearch serverless架构介绍(查询写入分离,计算存储分离)

    ElasticSearch 推出了全新的serverless架构,将查询(search)和写入(indexing)分离,将计算(computing)和存储(storage)分离,极大提高了 ES 的可运维性,降低了学习成本。本文将先介绍下serverless含义,再介绍ElasticSearch serverless架构。 在serverless架构下,用户只需关注业务逻辑,无需管理服务

    2024年01月24日
    浏览(12)
  • Elasticsearch:图解写入流程

    Elasticsearch:图解写入流程

            Elasticsearch是一个功能强大、性能高效、易于使用和扩展的分布式搜索和分析引擎,已被广泛应用于日志分析、企业搜索、电子商务等领域。 Elasticsearch是一个基于Lucene的分布式搜索和分析引擎,它能够快速存储、搜索和分析大量的数据。它支持多种数据类型的存储

    2024年01月18日
    浏览(6)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包