Elasticsearchr入门

首先在官网下载elasticsearch8.9版本,以及8.9版本的kibana。

解压,点击es8.9bin目录下的elasticsearch.bat文件启动es

如图所示即为成功。 

 启动之后打开idea,添加依赖

        <dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.13.2</version></dependency><dependency><groupId>org.glassfish</groupId><artifactId>jakarta.json</artifactId><version>2.0.1</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-configuration-processor</artifactId><optional>true</optional></dependency><dependency><groupId>co.elastic.clients</groupId><artifactId>elasticsearch-java</artifactId><version>8.9.0</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><version>2.7.10</version></dependency>

之后配置配置文件

@Configuration
public class ElasticSearchConfig {@Beanpublic ElasticsearchClient elasticsearchClient(){RestClient client = RestClient.builder(new HttpHost("localhost", 9200,"http")).build();ElasticsearchTransport transport = new RestClientTransport(client,new JacksonJsonpMapper());return new ElasticsearchClient(transport);}
}

这时候就已经可以使用了基本使用操作如下代码块


@SpringBootTest
class SpringDataJpaApplicationTests {@Autowiredprivate ElasticsearchClient client;/*创建索引*/@Testvoid test01() throws Exception {//写法比RestHighLevelClient更加简洁CreateIndexResponse indexResponse = client.indices().create(c -> c.index("user"));}//查询数据@Testpublic void queryTest() throws IOException {GetIndexResponse getIndexResponse = client.indices().get(i -> i.index("user"));System.out.println(getIndexResponse);}//判断索引是否存在@Testpublic void existsTest() throws IOException {BooleanResponse booleanResponse = client.indices().exists(e -> e.index("user"));System.out.println(booleanResponse.value());}//删除索引@Testpublic void deleteTest() throws IOException {DeleteIndexResponse deleteIndexResponse = client.indices().delete(d -> d.index("user"));System.out.println(deleteIndexResponse.acknowledged());}//插入document@Testpublic void addDocumentTest() throws IOException {User user = new User(1, "张三","123123123");IndexResponse indexResponse = client.index(i -> i.index("user")//设置id.id("1")//传入user对象.document(user));}//更新document@Testpublic void updateDocumentTest() throws IOException {UpdateResponse<User> updateResponse = client.update(u -> u.index("user").id("1").doc(new User(1,"user2","123132131")), User.class);}//查询document@Testpublic void queryDocumentTest() throws IOException {GetResponse<User> response = client.get(g -> g.index("user").id("1"), User.class);System.out.println(response);System.out.println(response.source());}//删除document@Testpublic void deleteDocumentTest() throws IOException {DeleteResponse response = client.delete(d -> d.index("user").id("1"));System.out.println(response);}//批量插入document@Testpublic void bulkTest() throws IOException {List<User> users=new CopyOnWriteArrayList<>();users.add(new User(1,"张1","1233"));users.add(new User(2,"张2","1234"));users.add(new User(3,"张3","1235"));users.add(new User(4,"张4","1236"));users.add(new User(5,"张5","1237"));List< BulkOperation> bulkOperationCopyOnWriteArrayList =new CopyOnWriteArrayList<>();//遍历插入bulk中users.stream().forEach(u->{bulkOperationCopyOnWriteArrayList.add(BulkOperation.of(o ->o.index(i->i.document(u))));});System.out.println(bulkOperationCopyOnWriteArrayList);BulkResponse response=client.bulk(b->b.index("user").operations(bulkOperationCopyOnWriteArrayList));System.out.println(response);}//查询
/*	@Testpublic void searchTest() throws IOException {SearchResponse<User> search = client.search(s -> s.index("user")//查询name字段包含hello的document(不使用分词器精确查找).query(q -> q.term(t -> t.field("name").value(v -> v.stringValue("hello"))))//分页查询,从第0页开始查询3个document.from(0).size(3)//按age降序排序.sort(f->f.field(o->o.field("age").order(SortOrder.Desc))),User.class);for (Hit<User> hit : search.hits().hits()) {System.out.println(hit.source());}}*/}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/55381.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot 日志文件

一、日志的作用 日志是程序的重要组成部分&#xff0c;想象一下&#xff0c;如果程序报错了&#xff0c;不让你打开控制台看日志&#xff0c;那么你能找到报错的原因吗 答案是否定的&#xff0c;写程序不是买彩票&#xff0c;不能完全靠猜&#xff0c;因此日志对于我们来说&a…

Flutter游戏引擎Flame系列笔记 - 1.Flame引擎概述

Flutter游戏引擎Flame系列笔记 1.Flame引擎概述 - 文章信息 - Author: 李俊才(jcLee95) Visit me at: https://jclee95.blog.csdn.netEmail: 291148484163.com. Shenzhen ChinaAddress of this article:https://blog.csdn.net/qq_28550263/article/details/132119035 【介绍】…

【笔记】第94期-冯永吉-《湖仓集一体关键技术解读》-大数据百家讲坛-厦大数据库实验室主办20221022

https://www.bilibili.com/video/BV1714y1j7AU/?spm_id_from333.337.search-card.all.click&vd_sourcefa36a95b3c3fa4f32dd400f8cabddeaf

[LitCTF 2023]Http pro max plus

打开环境后提示说&#xff0c;只允许在本地访问&#xff0c;本地访问&#xff0c;还是想到了XFF字段 好家伙的&#xff0c;直接被嘲讽&#xff0c;还是了解太少了&#xff0c;都不知道还有没有其他方式可以控制ip地址信息 经过查看wp&#xff0c;得知一种新的方式 Client-IP …

VL 模型 Open-Set Domain Adaptation with Visual-Language Foundation Models 论文阅读笔记

Open-Set Domain Adaptation with Visual-Language Foundation Models 论文阅读笔记 一、Abstract 写在前面 又是一周周末&#xff0c;在家的时间感觉过得很快呀。今天没得时间写博客&#xff0c;留下个标题&#xff0c;明天搞完。 论文地址&#xff1a;Open-Set Domain Adapta…

PCIe总线详解

一、PCIe简介 PCI Express (peripheral component interconnect express) 简称PCIe&#xff0c;是一种高速、串行、全双工、计算机扩展总线标准&#xff0c;采用高速差分总线&#xff0c;并采用端到端的连接方式&#xff0c;因此在每一条PCIe链路中两端只能各连接一个设备。相对…

Docker安装Mysql、Redis、nginx、nacos等环境

相关系列文章&#xff1a; 1、DockerHarbor私有仓库快速搭建 2、DockerJenkinsHarbor 1、服务器 Ip部署内容说明192.168.88.7Docker、Mysql、redis、nacosnode1192.168.88.8Docker、Mysql、redis、nacosnode2192.168.88.9Docker、redis、nacos、nginxnode3 2、安装PXC8.0 Mys…

【C++】map和set

目录 一、容器补充1.序列式容器与关联式容器2.键值对3.树形结构的关联式容器 二、set1.set的介绍2.set的使用3.multset的介绍4.multset的使用 三、map1.map的介绍2.map的使用3.multimap的介绍4.multimap的使用 一、容器补充 1.序列式容器与关联式容器 我们已经接触过STL中的部…

postgresql之内存池-AllocsetContext

一、简介 postgresql大部分的内存分配管理都是通过MemoryContext进行操作的&#xff0c; 多个相关的MemoryContext构成了一个树型结构&#xff0c; 多个树构成了一个森林。 实现了三种MemoryContext: SlabContextGenerationContextAllocSetContext 使用全局变量CurrentMemo…

哪些情况下需要使用爬虫IP

不知道小伙伴们有没有遇到过这种场景&#xff1a;上网闲逛&#xff0c;看一些搞笑的视频或者想下载一些酷炫的文件&#xff0c;正点击呢&#xff0c;结果却发现被网站限制了&#xff0c;无法访问或者下载&#xff1f; 别急&#xff0c;今天我来告诉大家&#xff0c;如何借助使…

rust基础

这是笔者学习rust的学习笔记&#xff08;如有谬误&#xff0c;请君轻喷&#xff09; 参考视频&#xff1a; https://www.bilibili.com/video/BV1hp4y1k7SV参考书籍&#xff1a;rust程序设计语言&#xff1a;https://rust.bootcss.com/title-page.htmlmarkdown地址&#xff1a;h…

操作系统复习总结1

操作系统复习总结&#xff0c;仅供笔者复习使用&#xff0c;参考教材&#xff1a; 《操作系统原理》 - 何静媛编著. 西安电子科技大学出版社《操作系统考研复习指导》2024年 - 王道论坛组编. 电子工业出版社 本文主要内容为&#xff1a;计算机系统概述&#xff1b; 计算机系…