1. 认识elasticsearch

在这里插入图片描述

在这里插入图片描述

2. 认识和安装ES

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
主播这里之前已经安装好了,资料包里面有镜像

docker run -d \--name es \-e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \-e "discovery.type=single-node" \-v es-data:/usr/share/elasticsearch/data \-v es-plugins:/usr/share/elasticsearch/plugins \--privileged \--network hm-net \-p 9200:9200 \-p 9300:9300 \elasticsearch:7.12.1

在这里插入图片描述
在这里插入图片描述
http://192.168.10.100:9200/

在这里插入图片描述

docker run -d \
--name kibana \
-e ELASTICSEARCH_HOSTS=http://es:9200 \
--network=hm-net \
-p 5601:5601  \
kibana:7.12.1

在这里插入图片描述

在这里插入图片描述

3. 倒排索引

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

4. IK分词器

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

5. ES基本概念

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

6. 索引库操作——Mapping映射属性

在这里插入图片描述

7. 索引库操作——索引库的CRUD

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

8. 文档操作——文档的CRUD

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

9. 文档操作——批量处理

在这里插入图片描述

10. JavaRestClient——客户端初始化

在这里插入图片描述

<dependency><groupId>org.elasticsearch.client</groupId><artifactId>elasticsearch-rest-high-level-client</artifactId>
</dependency>
  <properties><maven.compiler.source>11</maven.compiler.source><maven.compiler.target>11</maven.compiler.target><elasticsearch.version>7.12.1</elasticsearch.version></properties>
RestHighLevelClient client = new RestHighLevelClient(RestClient.builder(HttpHost.create("http://192.168.150.101:9200")
));

在这里插入图片描述

11. JavaRestClient——商品的mapping映射

在这里插入图片描述

PUT /items
{"mappings": {"properties": {"id": {"type": "keyword"},"name":{"type": "text","analyzer": "ik_max_word"},"price":{"type": "integer"},"stock":{"type": "integer"},"image":{"type": "keyword","index": false},"category":{"type": "keyword"},"brand":{"type": "keyword"},"sold":{"type": "integer"},"commentCount":{"type": "integer","index": false},"isAD":{"type": "boolean"},"updateTime":{"type": "date"}}}
}

12. JavaRestClient——索引库操作

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

13. JavaRestClient——新增文档

在这里插入图片描述

package com.hmall.item.domain.po;import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;import java.time.LocalDateTime;@Data
@ApiModel(description = "索引库实体")
public class ItemDoc{@ApiModelProperty("商品id")private String id;@ApiModelProperty("商品名称")private String name;@ApiModelProperty("价格(分)")private Integer price;@ApiModelProperty("商品图片")private String image;@ApiModelProperty("类目名称")private String category;@ApiModelProperty("品牌名称")private String brand;@ApiModelProperty("销量")private Integer sold;@ApiModelProperty("评论数")private Integer commentCount;@ApiModelProperty("是否是推广广告,true/false")private Boolean isAD;@ApiModelProperty("更新时间")private LocalDateTime updateTime;
}

在这里插入图片描述

@Test
void testAddDocument() throws IOException {// 1.根据id查询商品数据Item item = itemService.getById(100002644680L);// 2.转换为文档类型ItemDoc itemDoc = BeanUtil.copyProperties(item, ItemDoc.class);// 3.将ItemDTO转jsonString doc = JSONUtil.toJsonStr(itemDoc);// 1.准备Request对象IndexRequest request = new IndexRequest("items").id(itemDoc.getId());// 2.准备Json文档request.source(doc, XContentType.JSON);// 3.发送请求client.index(request, RequestOptions.DEFAULT);
}

13. JavaRestClient——文档的CRUD

在这里插入图片描述

@Test
void testGetDocumentById() throws IOException {// 1.准备Request对象GetRequest request = new GetRequest("items").id("100002644680");// 2.发送请求GetResponse response = client.get(request, RequestOptions.DEFAULT);// 3.获取响应结果中的sourceString json = response.getSourceAsString();ItemDoc itemDoc = JSONUtil.toBean(json, ItemDoc.class);System.out.println("itemDoc= " + ItemDoc);
}

删除文档

@Test
void testDeleteDocument() throws IOException {// 1.准备Request,两个参数,第一个是索引库名,第二个是文档idDeleteRequest request = new DeleteRequest("item", "100002644680");// 2.发送请求client.delete(request, RequestOptions.DEFAULT);
}

局部更新
在这里插入图片描述

@Test
void testUpdateDocument() throws IOException {// 1.准备RequestUpdateRequest request = new UpdateRequest("items", "100002644680");// 2.准备请求参数request.doc("price", 58800,"commentCount", 1);// 3.发送请求client.update(request, RequestOptions.DEFAULT);
}

在这里插入图片描述

14. JavaRestClient——文档批处理

在这里插入图片描述

在这里插入图片描述

@Test
void testBulk() throws IOException {// 1.创建RequestBulkRequest request = new BulkRequest();// 2.准备请求参数request.add(new IndexRequest("items").id("1").source("json doc1", XContentType.JSON));request.add(new IndexRequest("items").id("2").source("json doc2", XContentType.JSON));// 3.发送请求client.bulk(request, RequestOptions.DEFAULT);
}

真数据

@Test
void testLoadItemDocs() throws IOException {// 分页查询商品数据int pageNo = 1;int size = 1000;while (true) {Page<Item> page = itemService.lambdaQuery().eq(Item::getStatus, 1).page(new Page<Item>(pageNo, size));// 非空校验List<Item> items = page.getRecords();if (CollUtils.isEmpty(items)) {return;}log.info("加载第{}页数据,共{}条", pageNo, items.size());// 1.创建RequestBulkRequest request = new BulkRequest("items");// 2.准备参数,添加多个新增的Requestfor (Item item : items) {// 2.1.转换为文档类型ItemDTOItemDoc itemDoc = BeanUtil.copyProperties(item, ItemDoc.class);// 2.2.创建新增文档的Request对象request.add(new IndexRequest().id(itemDoc.getId()).source(JSONUtil.toJsonStr(itemDoc), XContentType.JSON));}// 3.发送请求client.bulk(request, RequestOptions.DEFAULT);// 翻页pageNo++;}
}

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

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

相关文章

由浅入深地讲清楚浏览器缓存

一、什么是浏览器缓存&#xff1f;&#xff08;入门级&#xff09; 1. 浏览器缓存的定义浏览器缓存就是&#xff1a;浏览器把之前请求过的资源保存起来&#xff0c;下次访问同样的资源时可以直接用本地副本&#xff0c;而不是重新请求服务器。举个生活例子&#xff1a; 你第一次…

Linux I/O 多路复用机制对比分析:poll/ppoll/epoll/select

Linux I/O 多路复用机制对比分析&#xff1a;poll/ppoll/epoll/select 1. 概述 I/O 多路复用是现代高性能网络编程的核心技术&#xff0c;它允许单个线程同时监视多个文件描述符的状态变化&#xff0c;从而实现高效的并发处理。Linux 提供了多种 I/O 多路复用机制&#xff0c…

高防服务器租用:保障数据安全

您的网络速度是否卡顿&#xff0c;业务是否经常受到网络攻击的威胁呢&#xff1f;别担心&#xff0c;高防服务器租用能够帮助你解决这些困扰&#xff01;高防服务器租用拥有着卓越的防御能力&#xff0c;可以帮助企业抵御各种网络攻击&#xff0c;能够轻松化解各种超大流量的网…

基于python多光谱遥感数据处理、图像分类、定量评估及机器学习方法应用

基于卫星或无人机平台的多光谱数据在地质、土壤调查和农业等应用领域发挥了重要作用&#xff0c;在地质应用方面&#xff0c;综合Aster的短波红外波段、landsat热红外波段等多光谱数据&#xff0c;可以通过不同的多光谱数据组合&#xff0c;协同用于矿物信息有效提取。第一&…

CSS content-visibility:提升页面渲染性能的 “智能渲染开关”

在前端开发中&#xff0c;你是否遇到过这样的问题&#xff1a;页面包含大量 DOM 元素&#xff08;如长列表、复杂表格&#xff09;时&#xff0c;滚动变得卡顿&#xff0c;交互响应迟缓&#xff1f;这往往是因为浏览器需要不断渲染屏幕外的元素&#xff0c;浪费了大量计算资源。…

Javascript面试题及详细答案150道之(016-030)

《前后端面试题》专栏集合了前后端各个知识模块的面试题&#xff0c;包括html&#xff0c;javascript&#xff0c;css&#xff0c;vue&#xff0c;react&#xff0c;java&#xff0c;Openlayers&#xff0c;leaflet&#xff0c;cesium&#xff0c;mapboxGL&#xff0c;threejs&…

仿真电路:(十七下)DC-DC升压压电路原理简单仿真

1.前言 升压的环境用的没降压的多&#xff0c;但是升压会用在LED的很多电路上&#xff0c;所以理解一下原理 2.DC-DC升压原理简单仿真 升压原理 下面还是对升压进行简单的仿真 拓扑结构以及原理和降压还是很相似的&#xff0c;只是位置不太一样&#xff0c;过程推导就不推导…

ros2--source

setup脚本类型 install下面会有几个setup.xxx的shell脚本。 setup.bash setup.ps1 setup.sh setup.zsh 什么区别呢 文件名 Shell 类型 适用场景 setup.bash Bash (Linux/macOS) 标准 Linux/macOS 终端(默认使用) setup.sh 通用 Shell 兼容性更广,但功能可能受限 setu…

40.MySQL事务

1.事务的作用事务用于保证数据的一致性&#xff0c;它由一组相关的 dml (update delete insert) 语句组成&#xff0c;该组的 dml (update delete insert) 语句要么全部成功&#xff0c;要么全部失败。如&#xff1a;转账就要用事务来处理&#xff0c;用以保证数据的一致性。假…

java导入pdf(携带动态表格,图片,纯java不需要模板)

java导出pdf文件一、介绍二、准备三、实现效果四、代码一、介绍 上一篇文章&#xff08;java使用freemarker操作word&#xff08;携带动态表格&#xff0c;图片&#xff09;&#xff09;https://blog.csdn.net/weixin_45853881/article/details/129298494 紧跟上文&#xff0c…

【dropdown组件填坑指南】鼠标从触发元素到下拉框中间间隙时,下拉框消失,怎么解决?

开发dropdown组件填坑之hideDelay 引言 在开发下拉菜单&#xff08;dropdown&#xff09;或弹出框&#xff08;popover&#xff09;组件时&#xff0c;一个常见的用户体验问题就是鼠标移出触发区域后&#xff0c;弹出内容立即消失&#xff0c;这会导致用户无法移动到弹出内容上…

Linux I/O 函数完整清单

Linux I/O 函数完整清单 1. 基础 I/O 函数 1.1 基本读写 #include <unistd.h>ssize_t read(int fd, void *buf, size_t count); ssize_t write(int fd, const void *buf, size_t count);1.2 位置指定读写 #include <unistd.h>ssize_t pread(int fd, void *buf, siz…

面经——电子电路技术知识详解

电子电路技术知识详解 目录 德摩根定律周期性矩形波产生方法自激振荡器原理与设计晶体管温度效应分析反向饱和电流影响因素放大电路负反馈类型判断正弦波90相移电路直接耦合放大器的缺点二阶有源低通滤波器分析开关电源与线性电源对比 德摩根定律 德摩根定律&#xff08;De …

docker 安装 gitlab

null文章浏览阅读445次。问题&#xff1a;运行 docker run hello-world 报错。原因&#xff1a;原镜像源网络不稳定。https://blog.csdn.net/sszdzq/article/details/145733419 镜像获取 在线下载 docker pull gitlab/gitlab-ce:17.11.1-ce.0 离线获取 创建运行 sudo docke…

PHP中的日期/时间处理之Carbon组件

日常开发中&#xff0c;我们会经常用到日期和时间的操作&#xff0c;但官方的一般操作比较复杂&#xff0c;需要大量的时间进行格式化问题和大量计算等等。Carbon组件 可以帮助我们在 PHP 开发中处理日期/时间变得更加简单、更语义化&#xff0c;从而使得我们的代码更容易阅读和…

学习嵌入式第十八天

文章目录1.数据结构1.概念2.衡量代码质量和效率1.时间复杂度2.空间复杂度3.数据结构分类1.逻辑结构2.存储结构3.常见的数据结构2.链表1.与顺序表的区别2.链表分类1.单向链表1.定义链表节点类型2.空链表的创建3.链表的头插法4.链表的遍历5.链表元素删除3.makefile习题1.数据结构…

基于SpringBoot+Vue实现校园商铺系统

作者主页&#xff1a;编程指南针 作者简介&#xff1a;Java领域优质创作者、CSDN博客专家 、CSDN内容合伙人、掘金特邀作者、阿里云博客专家、51CTO特邀作者、多年架构师设计经验、多年校企合作经验&#xff0c;被多个学校常年聘为校外企业导师&#xff0c;指导学生毕业设计并参…

从资源闲置到弹性高吞吐,JuiceFS 如何构建 70GB/s 吞吐的缓存池?

AI 模型的训练与推理对存储系统提出了极为严苛的要求&#xff0c;特别是在高吞吐、高并发以及对海量小文件的高效处理方面&#xff0c;已成为三大主要挑战。尽管基于 Lustre 或 GPFS 的并行文件系统具备出色的性能&#xff0c;但其成本高昂、吞吐能力与容量强耦合&#xff0c;可…

提升JVM性能之CMS垃圾回收器的优化分析与案例剖析

这里写目录标题一、CMS基本介绍二、CMS核心优化策略1. 避免并发模式失败&#xff08;Concurrent Mode Failure&#xff09;2. 减少内存碎片3. 调优并发阶段耗时4. 新生代优化配合三、典型案例解析案例1&#xff1a;电商服务频繁Full GC案例2&#xff1a;金融交易系统碎片导致长…

Token系列 - 再谈稳定币

相关政策 2024年12月&#xff0c;欧洲《加密资产市场监管法案》正式成为法律2025年3月&#xff0c;日本细化了加密资产及稳定币的监管调整2025年5月&#xff0c;英国发布了关于稳定币发行、加密资产托管及加密资产公司财务稳健性的监管提案&#xff1b;2025年5月20日&#xff…