IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 2021年大数据ELK(十三):Elasticsearch编程(添加职位数据) -> 正文阅读

[大数据]2021年大数据ELK(十三):Elasticsearch编程(添加职位数据)

全网最详细的大数据ELK文章系列,强烈建议收藏加关注!?

新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点。

目录

Elasticsearch编程

一、添加职位数据

1、初始化客户端连接

2、实现关闭客户端连接

3、编写代码实现新增职位数据

4、编写测试用例测试添加方法


Elasticsearch编程

一、添加职位数据

1、初始化客户端连接

  • 使用RestHighLevelClient构建客户端连接。
  • 基于RestClient.builder方法来构建RestClientBuilder
  • 用HttpHost来添加ES的节点

参考代码:

private RestHighLevelClient restHighLevelClient;
private static final String JOB_IDX_NAME = "job_idx";

public JobFullTextServiceImpl() {
    restHighLevelClient = new RestHighLevelClient(RestClient.builder(
            new HttpHost("node1", 9200, "http")
            , new HttpHost("node2", 9200, "http")
            , new HttpHost("node3", 9200, "http")
    ));
}

2、实现关闭客户端连接

@Override
public void close() {
    try {
        restHighLevelClient.close();
    } catch (IOException e) {
        e.printStackTrace();
    }
}

3、编写代码实现新增职位数据

实现步骤:

  • 构建IndexRequest对象,用来描述ES发起请求的数据。
  • 设置文档ID。
  • 使用FastJSON将实体类对象转换为JSON。
  • 使用IndexRequest.source方法设置文档数据,并设置请求的数据为JSON格式。
  • 使用ES High level client调用index方法发起请求,将一个文档添加到索引中。

参考代码:

@Override
public void add(JobDetail jobDetail) {
    // 1. 构建IndexRequest对象,用来描述ES发起请求的数据。
    IndexRequest indexRequest = new IndexRequest(JOB_IDX_NAME);

    // 2. 设置文档ID。
    indexRequest.id(jobDetail.getId() + "");

    // 3. 构建一个实体类对象,并使用FastJSON将实体类对象转换为JSON。
    String json = JSON.toJSONString(jobDetail);

    // 4. 使用IndexRequest.source方法设置请求数据。
    indexRequest.source(json);

    try {
        // 5. 使用ES High level client调用index方法发起请求
        restHighLevelClient.index(indexRequest, RequestOptions.DEFAULT);
    } catch (IOException e) {
        e.printStackTrace();
    }

    System.out.println("索引创建成功!");
}

常见错误:

java.lang.IllegalArgumentException: The number of object passed must be even but was [1]

	at org.elasticsearch.action.index.IndexRequest.source(IndexRequest.java:474)
	at org.elasticsearch.action.index.IndexRequest.source(IndexRequest.java:461)

原因:IndexRequest.source要求传递偶数个的参数,但只传递了1个

4、编写测试用例测试添加方法

  • 在 test/java 目录中创建一个?cn.it.elasticsearch.service 包。
  • 在cn.it.elasticsearch.service 包下创建一个JobFullTextServiceTest类。
  • 在@BeforeTest中构建JobFullTextService对象,@AfterTest中调用close方法关闭连接。
  • 编写测试用例,构建一个测试用的实体类,测试add方法。

参考代码:

public class JobFullTextServiceTest {

    private JobFullTextService jobFullTextService;

    @BeforeTest
    public void beforeTest() {
        jobFullTextService = new JobFullTextServiceImpl();
    }

    @Test
    public void addTest() {
        // 1. 测试新增索引文档
       jobFullTextService = new JobFullTextServiceImpl();

        JobDetail jobDetail = new JobDetail();
        jobDetail.setId(1);
        jobDetail.setArea("江苏省-南京市");
        jobDetail.setCmp("Elasticsearch大学");
        jobDetail.setEdu("本科及以上");
        jobDetail.setExp("一年工作经验");
        jobDetail.setTitle("大数据工程师");
        jobDetail.setJob_type("全职");
        jobDetail.setPv("1700次浏览");
        jobDetail.setJd("会Hadoop就行");
        jobDetail.setSalary("5-9千/月");

        jobFullTextService.add(jobDetail);
    }

    @AfterTest
    public void afterTest() {
        jobFullTextService.close();
    }
}

  • 📢博客主页:https://lansonli.blog.csdn.net
  • 📢欢迎点赞 👍 收藏 ?留言 📝 如有错误敬请指正!
  • 📢本文由 Lansonli 原创,首发于 CSDN博客🙉
  • 📢大数据系列文章会每天更新,停下休息的时候不要忘了别人还在奔跑,希望大家抓紧时间学习,全力奔赴更美好的生活?
  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-12-04 13:30:42  更:2021-12-04 13:32:39 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 11:04:50-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码