ElasticSearch JavaAPI(java操作)

在这里插入图片描述
操作ElasticSearch分为脚本操作(运维人员常用)和java操作(开发人员常用),今天小编主要介绍java操作方式,之前小编讲解了ES如何搭建,并介绍了IK分词器,今天基于ES环境来继续学习。

  • 需求:使用sringboot整合ElasticSearch
  • 实现步骤:
    1、 搭建springboot工程
    2、 引入ElasticSearch相关坐标
    3、 测试编码
    下面是ElasticSearch的相关坐标
    ElasticSearch JavaAPI(java操作)_第1张图片
  • 开始部署springboot项目
    ElasticSearch JavaAPI(java操作)_第2张图片
    ElasticSearch JavaAPI(java操作)_第3张图片
    由于不是web工程,下面页面不需要勾选
    ElasticSearch JavaAPI(java操作)_第4张图片
    直接finish完成
    ElasticSearch JavaAPI(java操作)_第5张图片
    去pom文件引入ES所需要的坐标
<!-- 引入ES的坐标 -->
<dependency>
    <groupId>org.elasticsearch.client</groupId>
    <artifactId>elasticsearch-rest-high-level-client</artifactId>
    <version>7.4.0</version>
</dependency>
<dependency>
    <groupId>org.elasticsearch.client</groupId>
    <artifactId>elasticsearch-rest-client</artifactId>
    <version>7.4.0</version>
</dependency>
<dependency>
    <groupId>org.elasticsearch</groupId>
    <artifactId>elasticsearch</artifactId>
    <version>7.4.0</version>
</dependency>

ElasticSearch JavaAPI(java操作)_第6张图片
写一个测试类,并启动下
ElasticSearch JavaAPI(java操作)_第7张图片
这个时候我们开始整合springboot
在resource下创建application.yml

ElasticSearch JavaAPI(java操作)_第8张图片
在java层级下创建ElasticSearchConfig类

package com.itheima.elasticsearchdemo.config;

import org.apache.http.HttpHost;
import org.elasticsearch.client.RestClient;
import org.elasticsearch.client.RestHighLevelClient;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
@ConfigurationProperties(prefix = "elasticsearch")
public class ElasticSearchConfig {

    private String host;
    private int port;

    public String getHost() {
        return host;
    }

    public void setHost(String host) {
        this.host = host;
    }

    public int getPort() {
        return port;
    }

    public void setPort(int port) {
        this.port = port;
    }

    @Bean
    public RestHighLevelClient client(){
        return  new RestHighLevelClient(RestClient.builder(
                new HttpHost(
                        host,port,"http"
                )
        ));
    }
}

上方出现红条没有问题,引入一个maven坐标即可解决
重新修改测试类

package com.itheima.elasticsearchdemo;

import org.apache.http.HttpHost;
import org.elasticsearch.client.RestClient;
import org.elasticsearch.client.RestHighLevelClient;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
class ElasticsearchDemoApplicationTests {

    @Autowired
    private RestHighLevelClient client;

    @Test
    void contextLoads() {
        //1.创建ES客户端对象
//        RestHighLevelClient client = new RestHighLevelClient(RestClient.builder(
//                new HttpHost(
//                        "192.168.149.135",9200,"http"
//                )
//        ));
        System.out.println(client);
    }

}

启动下
ElasticSearch JavaAPI(java操作)_第9张图片
发现没有问题,整合完毕

  • 操作索引
  • 添加索引
    ElasticSearch JavaAPI(java操作)_第10张图片
    执行完进行查询
    ElasticSearch JavaAPI(java操作)_第11张图片
  • 添加索引及映射信息
    ElasticSearch JavaAPI(java操作)_第12张图片
    ElasticSearch JavaAPI(java操作)_第13张图片
    执行成功后,去kibana看下
    ElasticSearch JavaAPI(java操作)_第14张图片
  • 查询索引
    ElasticSearch JavaAPI(java操作)_第15张图片
    这样查询 是itcast:后面显示个对象
    我们要向查询数据可以改为

    ElasticSearch JavaAPI(java操作)_第16张图片
    再查询一下
    ElasticSearch JavaAPI(java操作)_第17张图片
  • 删除索引
    ElasticSearch JavaAPI(java操作)_第18张图片
    执行一下
    ElasticSearch JavaAPI(java操作)_第19张图片
    ElasticSearch JavaAPI(java操作)_第20张图片
  • 判断索引是否存在
    ElasticSearch JavaAPI(java操作)_第21张图片
    执行一下
    ElasticSearch JavaAPI(java操作)_第22张图片
  • 操作文档
  1. 添加文档(map的数据形式)
    ElasticSearch JavaAPI(java操作)_第23张图片
    查询一下
    ElasticSearch JavaAPI(java操作)_第24张图片
    以上是map的数据形式,建议改成实体类型的入参
  2. 添加文档(实体的数据形式 实体转json)
    ElasticSearch JavaAPI(java操作)_第25张图片
  3. 修改文档
    添加文档时id存在时修改,id不存在则是添加,就是上面的添加操作
  4. 根据id查询文档
    ElasticSearch JavaAPI(java操作)_第26张图片
    执行一下
    ElasticSearch JavaAPI(java操作)_第27张图片
  5. 删除文档
    ElasticSearch JavaAPI(java操作)_第28张图片
    执行一下,打印删除为1的id
    ElasticSearch JavaAPI(java操作)_第29张图片

你可能感兴趣的:(笔记,elasticsearch,经验分享)