当前位置: 首页 > news >正文

使用springboot对Elasticsearch 进行索引的增、删、改、查

一 SpringBoot + Elasticsearch 项目环境搭建

1.1 修改pom文件添加依赖

目前使用spring-boot-starter-parent版本为2.2.8.RELEASE

对应spring-data-elasticsearch版本为2.2.8.RELEASE,版本对应可以自行百度,如果不行直接用elasticsearch-rest-high-level-client工具类吧

      <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-elasticsearch</artifactId><version>2.2.8.RELEASE</version></dependency><dependency><groupId>org.elasticsearch</groupId><artifactId>elasticsearch</artifactId><version>7.5.0</version></dependency><dependency><groupId>org.elasticsearch.client</groupId><artifactId>elasticsearch-rest-client</artifactId><version>7.5.0</version></dependency><dependency><groupId>org.elasticsearch.client</groupId><artifactId>elasticsearch-rest-high-level-client</artifactId><version>7.5.0</version></dependency>
1.2 新建配置文件
import org.apache.http.HttpHost;
import org.elasticsearch.client.RestClient;
import org.elasticsearch.client.RestHighLevelClient;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;/*** ES配置类** @author lc* @version 1.0* @date 2022/3/25 10:53*/
@Configuration
public class ElasticSearchClientConfig {@Beanpublic RestHighLevelClient restHighLevelClient() {RestHighLevelClient client = new RestHighLevelClient(RestClient.builder(new HttpHost("192.168.1.100", 9200, "http")));return client;}
}

二 RestHighLevelClient的使用

RestHighLevelClient是Elasticsearch 的操作方法,我们先进行引用吧。

@Autowired
private RestHighLevelClient client;

1、创建索引

 @Testvoid testCreateIndex() throws IOException {//1 创建索引请求CreateIndexRequest request = new CreateIndexRequest("zlc_index");//2 客户端执行请求CreateIndexResponse createIndexResponse =client.indices().create(request, RequestOptions.DEFAULT);System.out.println(createIndexResponse);}

2、索引是否存在

@Testvoid testExistIndex() throws IOException {GetIndexRequest request = new GetIndexRequest("zlc_index");boolean exists = client.indices().exists(request, RequestOptions.DEFAULT);System.out.println(exists);}

3、删除索引

@Testvoid testDeleteIndex() throws IOException {DeleteIndexRequest request = new DeleteIndexRequest("zlc_index");AcknowledgedResponse delete = client.indices().delete(request, RequestOptions.DEFAULT);System.out.println(delete.isAcknowledged());}

4、添加文档

@Testvoid testAddDocument() throws IOException {//创建对象UserES user = new UserES();user.setUserName("suwerw");user.setUserPhone("178245774");//创建请求IndexRequest request = new IndexRequest("zlc_index");//规则 put /zlc_index/_doc/1request.id("1");request.timeout(TimeValue.timeValueSeconds(1));request.timeout("1s");//将数据放入请求request.source(JSON.toJSONString(user), XContentType.JSON);//客户端发送请求,获取响应结果IndexResponse indexResponse = client.index(request, RequestOptions.DEFAULT);System.out.println(indexResponse.toString());System.out.println(indexResponse.status());}

5、判断文档是否存在

@Testvoid testIsExists() throws IOException {GetRequest getRequest = new GetRequest("zlc_index", "1");//不获取返回的 _source 的上下文,提高效率getRequest.fetchSourceContext(new FetchSourceContext(false));getRequest.storedFields("_none_");boolean exists = client.exists(getRequest, RequestOptions.DEFAULT);System.out.println(exists);}

6、获取文档

 @Testvoid testGetDocument() throws IOException {GetRequest getRequest = new GetRequest("zlc_index", "1");GetResponse getResponse = client.get(getRequest, RequestOptions.DEFAULT);System.out.println(getResponse);System.out.println(getResponse.getSourceAsString());}

7、更新文档信息

 @Testvoid testUpdateDocument() throws IOException {UpdateRequest updateRequest = new UpdateRequest("zlc_index", "1");updateRequest.timeout("1s");UserES user = new UserES();user.setUserName("Zhou_LC");user.setUserPhone("233669");updateRequest.doc(JSON.toJSONString(user), XContentType.JSON);UpdateResponse updateResponse = client.update(updateRequest, RequestOptions.DEFAULT);System.out.println(updateResponse);System.out.println(updateResponse.status());}

8、删除文档

  @Testvoid testDeleteDocument() throws IOException {DeleteRequest deleteRequest = new DeleteRequest("zlc_index", "1");deleteRequest.timeout("1s");DeleteResponse deleteResponse = client.delete(deleteRequest, RequestOptions.DEFAULT);System.out.println(deleteResponse);System.out.println(deleteResponse.status());}

相关文章:

  • 企业网络带宽使用情况检查技巧
  • Vite+Vue3项目全局引入scss文件
  • 【蓝桥杯选拔赛真题44】python小蓝晨跑 青少年组蓝桥杯python 选拔赛STEMA比赛真题解析
  • 从用户角度出发,如何优化大数据可视化体验|北京蓝蓝UI设计公司
  • [100天算法】-实现 strStr()(day 52)
  • Selenium学习(Java + Edge)
  • 软考之知识产品+例题
  • Mozilla Firefox 119 现已可供下载
  • 算法通关村第四关|黄金挑战|表达式问题
  • window压缩包安装mongodb并注册系统服务
  • AlarmManager闹钟管理者
  • JAVA 实现PDF转图片(pdfbox版)
  • linux下mysql-8.2.0集群部署(python版本要在2.7以上)
  • 使用 PyTorch 构建自定义 GPT
  • android services
  • SegmentFault for Android 3.0 发布
  • [Vue CLI 3] 配置解析之 css.extract
  • Android框架之Volley
  • httpie使用详解
  • Javascripit类型转换比较那点事儿,双等号(==)
  • Java小白进阶笔记(3)-初级面向对象
  • JDK9: 集成 Jshell 和 Maven 项目.
  • JWT究竟是什么呢?
  • Markdown 语法简单说明
  • mongodb--安装和初步使用教程
  • overflow: hidden IE7无效
  • python3 使用 asyncio 代替线程
  • Python爬虫--- 1.3 BS4库的解析器
  • spring学习第二天
  • Vue小说阅读器(仿追书神器)
  • 基于Vue2全家桶的移动端AppDEMO实现
  • 开发了一款写作软件(OSX,Windows),附带Electron开发指南
  • 离散点最小(凸)包围边界查找
  • 前端技术周刊 2019-01-14:客户端存储
  • 一个完整Java Web项目背后的密码
  • 在Unity中实现一个简单的消息管理器
  • ionic异常记录
  • ​【原创】基于SSM的酒店预约管理系统(酒店管理系统毕业设计)
  • $.type 怎么精确判断对象类型的 --(源码学习2)
  • (6)STL算法之转换
  • (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切
  • (NO.00004)iOS实现打砖块游戏(十二):伸缩自如,我是如意金箍棒(上)!
  • (webRTC、RecordRTC):navigator.mediaDevices undefined
  • (二)PySpark3:SparkSQL编程
  • (附源码)spring boot网络空间安全实验教学示范中心网站 毕业设计 111454
  • (附源码)计算机毕业设计ssm-Java网名推荐系统
  • (三)uboot源码分析
  • (收藏)Git和Repo扫盲——如何取得Android源代码
  • (图)IntelliTrace Tools 跟踪云端程序
  • (转)PlayerPrefs在Windows下存到哪里去了?
  • (转)甲方乙方——赵民谈找工作
  • (转)清华学霸演讲稿:永远不要说你已经尽力了
  • (自用)learnOpenGL学习总结-高级OpenGL-抗锯齿
  • .aanva
  • .NET CF命令行调试器MDbg入门(四) Attaching to Processes