Java操作Elasticsearch(新增数据)

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

天行健,君子以自强不息;地势坤,君子以厚德载物。


每个人都有惰性,但不断学习是好好生活的根本,共勉!


文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。


一、服务安装参考

首先需要准备好elasticsearch和kibana
elasticsearch的下载、安装、使用可参考:Elasticsearch安装
kibana的下载、安装、使用可参考:Kibana安装、配置
服务的启动使用和数据增删改查可参考:kibana操作elasticsearch(增删改查)
在进行一下Java实现之前,先将es服务和kibana服务启动

二、Java实现新增数据到ES

Elasticsearch的服务开启后,可以使用http请求进行调用接口来操作Elasticsearch数据
请求的url格式如下:

http://localhost:9200/index/type/id

对于Java来说,可以使用http请求工具进行实现,同时传参,参数为json类型数据
具体实现如下

1. 环境

并非要求,只是我这里使用的这个环境
JDK 1.8
Maven 3.9.4
IDEA 2023.2.1

2. 包结构

这里主要用到三个文件:pom引入依赖,HttpClientUtils是请求工具,EsHttpRequestController是请求调用测试
elasticsearch新增数据,ELK,java,elasticsearch,开发语言

3. 依赖引入

引入http工具所需要的依赖,也就是实现请求的依赖
传入的参数为json类型所以也需要json工具的依赖
pom.xml完整内容

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.es</groupId>
    <artifactId>ES-HTTP</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <dependencies>
        <!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpcore -->
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpcore</artifactId>
            <version>4.4.14</version>
        </dependency>
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpclient</artifactId>
            <version>4.5.13</version>
        </dependency>
        <!--json工具-->
        <dependency>
            <groupId>com.alibaba.fastjson2</groupId>
            <artifactId>fastjson2</artifactId>
            <version>2.0.33</version>
        </dependency>

    </dependencies>


</project>

4. http请求工具

HttpClientUtils.java

package com.es.utils;

import org.apache.http.HttpEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;

/**
 * @ClassDescription:
 * @JdkVersion: 1.8
 * @Author: 李白
 * @Created: 2023/10/16 16:12
 */
public class HttpClientUtils {

    public static void post(){

    }
    public static String doPost(String url, String str, String encoding) {
        String body = "";
        try {
            // 创建httpclient对象
            CloseableHttpClient client = HttpClients.createDefault();
            // 创建post方式请求对象
            HttpPost httpPost = new HttpPost(url);
            // 设置参数到请求对象中
            httpPost.setEntity(new StringEntity(str, encoding));
            // 设置header信息
            // 指定报文头【Content-type】、【User-Agent】
            httpPost.setHeader("Content-type", "application/json;charset=UTF-8");
            // 执行请求操作,并拿到结果(同步阻塞)
            CloseableHttpResponse response = client.execute(httpPost);
            // 获取结果实体
            HttpEntity entity = response.getEntity();
            if (entity != null) {
                // 按指定编码转换结果实体为String类型
                body = EntityUtils.toString(entity, encoding);
            }
            EntityUtils.consume(entity);
            // 释放链接
            response.close();
            return body;
        } catch (Exception e1) {
            e1.printStackTrace();
            return "";

        }
    }

}

5. 测试代码

编写mian方法执行请求存数据到es
EsHttoRequestController.java

package com.es.test;

import com.alibaba.fastjson2.JSONObject;
import com.es.utils.HttpClientUtils;

/**
 * @ClassDescription:
 * @JdkVersion: 1.8
 * @Author: 李白
 * @Created: 2023/10/16 16:12
 */
public class EsHttpRequestController {

    public static void main(String[] args) {
        JSONObject js = new JSONObject();
        js.put("name","杜甫");
        js.put("age","6800");
        js.put("gender","男");
        String jsonStr = js.toJSONString();
        HttpClientUtils.doPost("http://127.0.0.1:9200/deviceinfo/users/1002",jsonStr,"UTF-8");
    }

}

6. 访问kibana服务

先看kibana服务查看数据
打开侧边栏,Analytics–Discover
elasticsearch新增数据,ELK,java,elasticsearch,开发语言
查看现有数据
elasticsearch新增数据,ELK,java,elasticsearch,开发语言
执行5. 测试代码的代码,然后刷新界面查看新增数据
如下,新增成功
elasticsearch新增数据,ELK,java,elasticsearch,开发语言


感谢阅读,祝君暴富!文章来源地址https://www.toymoban.com/news/detail-777924.html

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

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

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

相关文章

  • 【ELK】elasticsearch启动异常报错“access denied (“java.lang.RuntimePermission“ “modifyThread“)”解决一列

    背景,某运维小白搭建ES 7.17.7 集群重启ES集群出现启动es集群情况,服务自动关闭,错误日志如下: 现象: 1、看到需要关闭swap可以提升稳定性,装好ES后关闭swap并重启服务器发现ES无法启动; 2、回退swap后,启动成功; 3、关闭后故障依旧; 4、经检查发现内存使用率有点高

    2024年02月04日
    浏览(38)
  • Java SpringBoot API 实现ES(Elasticsearch)搜索引擎的一系列操作(超详细)(模拟数据库操作)

    小编使用的是elasticsearch-7.3.2 基础说明: 启动:进入elasticsearch-7.3.2/bin目录,双击elasticsearch.bat进行启动,当出现一下界面说明,启动成功。也可以访问http://localhost:9200/ 启动ES管理:进入elasticsearch-head-master文件夹,然后进入cmd命令界面,输入npm run start 即可启动。访问http

    2024年02月04日
    浏览(42)
  • java操作ElasticSearch之批量操作

    出现: 版本冲突、文档类型不对、JAR包与使用的API不一致或其他问题。都可参考以下连接。 ElasticSearch超级实用API描述 以上代码需要变动一下,将一些参数替换掉。

    2024年02月16日
    浏览(34)
  • Java 操作ElasticSearch

            Java REST提供了两种风格的客户端连接工具,Java High Level REST Client、Java Low Level REST Client,这里我就不去细说Java Low Level REST Client了,因为这我确实没用到过,也不是很了解,我说一下Java High Level REST Client。         首先如果你喜欢看官方文档的话,我把地址粘贴

    2024年02月06日
    浏览(23)
  • java Api操作Elasticsearch

    本次使用 elasticsearch 版本为7.17.0, 建议使用 7.X 版本 ,8.1.2版本会遇到一些 Springboot(本人使用版本2.6.6) 版本不兼容的问题。此文章会列举一个例子。 我们在测试类中先创建一个客户端,用来向 ES 发送请求 测试代码如下: 控制台输出信息如下: 此处会遇到坑: 运行之后

    2023年04月09日
    浏览(27)
  • Elasticsearch基本操作+集成SpringBoot+ELK日志平台搭建

    Elasticsearch是一种开源的搜索和分析引擎,最初由开源搜索引擎Lucene的作者于2010年创建。它提供了一个可伸缩、高性能的搜索和数据分析平台,可用于多种用途,包括 文本搜索、应用程序性能监控、业务分析、日志聚合 等。 Elasticsearch使用分布式架构,可以处理大量数据并实

    2024年02月06日
    浏览(50)
  • Java API批量操作Elasticsearch

    @Test public void batchAddIndex() throws IOException { BulkRequestBuilder bulkRequest = client .prepareBulk(); bulkRequest.add( client .prepareIndex( “batch_test1” , “batch” , “1” ) .setSource( jsonBuilder () .startObject() .field( “user” , “lzq” ) .field( “postDate” , new Date()) .field( “message” , “trying out Elasticsearch”

    2024年04月09日
    浏览(30)
  • Elasticsearch-Java操作篇

    通常情况下,都是使用编程语言来操作es,本篇带来如何用java操作es。 创建索引 查询索引 删除索引 创建文档 批量创建文档 更新文档 查询文档 删除文档 批量删除文档 查询所有索引数据 查询 分页查询 排序 过滤 bool查询 范围查询 模糊查询 高亮查询 聚合查询 分组查

    2024年02月12日
    浏览(39)
  • javaAPI操作Elasticsearch_elasticsearch 修改字段 java api

    } } import com.zyw.elasticsearchdemo.constants.HotelConstants; import org.apache.http.HttpHost; import org.elasticsearch.action.admin.indices.delete.DeleteIndexRequest; import org.elasticsearch.client.RequestOptions; import org.elasticsearch.client.RestClient; import org.elasticsearch.client.RestHighLevelClient; import org.elasticsearch.client.indices.Create

    2024年04月17日
    浏览(24)
  • 【ElasticSearch】ElasticSearch Java API的使用——常用索引、文档、查询操作(二)

    Elaticsearch ,简称为es,es是一个开源的 高扩展 的 分布式全文检索引擎 ,它可以近乎 实时的存储 、 检索数据; 本身扩展性很好,可以扩展到上百台服务器,处理PB级别(大数据时代)的数据。es也使用java开发并使用Lucene作为其核心来实现所有索引和搜索的功能,但是它的 目的

    2024年01月16日
    浏览(57)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包