【备忘录】快速回忆ElasticSearch的CRUD
导引——第一条ElasticSearch语句
测试分词器
POST /_analyze
{"text":"黑马程序员学习java太棒了","analyzer": "ik_smart"
}

概念
语法规则
HTTP_METHOD /index/_action/ID
HTTP_METHOD 是 HTTP 请求的方法,常见的包括 GET、POST、PUT、DELETE 等。
/index 是索引的名称。
/_action/ID 是操作的动作和文档的 ID。动作可以是 _search、_update、_delete 等,而 ID 则是文档的唯一标识符
HTTP_METHOD请求
GET:用于检索文档或执行搜索操作
GET /index/_search
PUT:用于创建新文档、执行搜索、执行批量操作等
PUT /index/_doc/ID
{ "field1": "value1" }
POST:创建(全量更新)或更新文档,如果文档已存在,则更新文档的全部内容
这里Elasticsearch 会自动生成文档的唯一标识符(ID),当然你也能申明指定的ID
POST /index/_doc
{ "field1": "value1" }
DELETE: 用于删除
DELETE /index/_doc/ID
ACTION 行为
在 Elasticsearch 中,_action 部分用于指定操作的动作。以下是一些常见的 _action 及其用途:
_search: 执行搜索操作,用于检索文档。
POST /index/_search
_count: 返回匹配查询条件的文档数量,但不返回文档本身。
POST /index/_count
_update: 更新文档的部分或全部内容。
POST /index/_update/ID
_delete: 删除指定 ID 的文档。
DELETE /index/_doc/ID
_bulk: 批量操作,可以一次执行多个索引、更新、删除等操作。
POST /index/_bulk
{ "index": { "_id": "1" } }
{ "field1": "value1" }
{ "update": { "_id": "2" } }
{ "doc": { "field2": "value2" } }
{ "delete": { "_id": "3" } }
_msearch: 执行多个搜索请求
POST /index/_msearch
{ }
{ "query": { "match_all": { } } }
INDEX
类似于MySQL的database
文档
类似于MySQL表中的一行
实战
索引操作

黑马的索引库
# 创建索引库
PUT /heima
{"mappings": {"properties": {"info":{"type":"text","analyzer": "ik_smart"},"email":{"type":"keyword","index": "false"}}}
}
酒店的索引库
# 酒店的mapping
PUT /hotel
{"mappings": {"properties": {"id":{"type": "keyword"},"name":{"type": "text","analyzer": "ik_max_word","copy_to": "all"},"address":{"type":"keyword","index": false},"price":{"type":"integer"},"score":{"type":"integer"},"brand":{"type": "keyword"},"city":{"type":"keyword"},"star_name":{"type": "keyword"},"business":{"type": "keyword","copy_to": "all"},"location":{"type":"geo_point"},"pic":{"type": "keyword","index": false},"all":{"type": "text","analyzer": "ik_max_word"}}}
文档操作


POST /heima/_doc/1
{"info":"黑马程序员Java学生","email":"zy@itcast.cn","name":{"firstName":"刘","lastName":"小小"}
}
GET /heima/_doc/1

查询功能拓展
全搜索
GET /hotel/_search
{"query": {"match_all": {}}
}
GET /hotel/_search
{"query": {"match": {"all": "如家"}}
}
精确搜索
GET /hotel/_search
{"query": {"term": {"city": "上海"}}
}
价格范围搜索

让用户能够先看到如家,给如家额外增加10分
# function score查询
GET /hotel/_search
{"query": {"function_score": {"query": {"match": {"all": "外滩"}},"functions": [{"filter": {"term": {"brand": "如家"}},"weight": 10},{"filter": {"term": {"brand": "7天"}},"weight": 5}],"boost_mode": "sum"}}
}

复合查询

Java中Match的核心四步骤
1、准备request
2、准备DSL请求参数语句
3、发送请求得到响应
4、处理响应
注意:只有DSL会改变
request.source().query(QueryBuilders.multiMatchQuery("外滩如家", "name", "brand", "city"));
request.source().query(QueryBuilders.boolQuery().must(QueryBuilders.termQuery("city", "杭州")).filter(QueryBuilders.rangeQuery("price").lte(250)));
测试类
@Test
void testMatch() throws IOException {// 1.准备requestSearchRequest request = new SearchRequest("hotel");// 2.准备请求参数DSL// request.source().query(QueryBuilders.matchQuery("all", "外滩如家"));request.source().query(QueryBuilders.multiMatchQuery("外滩如家", "name", "brand", "city"));// 3.发送请求,得到响应SearchResponse response = client.search(request, RequestOptions.DEFAULT);// 4.结果解析handleResponse(response);
}
private void handleResponse(SearchResponse response) {//解析响应SearchHits searchHits = response.getHits();// 4.1.总条数long total = searchHits.getTotalHits().value;System.out.println("总条数:" + total);// 4.2.获取文档数组SearchHit[] hits = searchHits.getHits();// 4.3.遍历for (SearchHit hit : hits) {// 4.4.获取sourceString json = hit.getSourceAsString();// 4.5.反序列化,非高亮的HotelDoc hotelDoc = JSON.parseObject(json, HotelDoc.class);// 4.6.处理高亮结果// 1)获取高亮mapMap<String, HighlightField> map = hit.getHighlightFields();// 2)根据字段名,获取高亮结果HighlightField highlightField = map.get("name");// 3)获取高亮结果字符串数组中的第1个元素if (highlightField != null) {String hName = highlightField.getFragments()[0].toString();// 4)把高亮结果放到HotelDoc中hotelDoc.setName(hName);} else {// 处理未找到高亮字段的情况hotelDoc.setName("No Highlight");}// 4.7.打印System.out.println(hotelDoc);}
}
相关文章:
【备忘录】快速回忆ElasticSearch的CRUD
导引——第一条ElasticSearch语句 测试分词器 POST /_analyze {"text":"黑马程序员学习java太棒了","analyzer": "ik_smart" }概念 语法规则 HTTP_METHOD /index/_action/IDHTTP_METHOD 是 HTTP 请求的方法,常见的包括…...
影响PPC广告成本预算的因素,如何计算亚马逊PPC广告预算——站斧浏览器
亚马逊PPC,又称按点击付费(Pay Per Click),是一种只有用户点击你的广告时才会向你收费的模式。那么影响PPC广告成本预算的因素,如何计算亚马逊PPC广告预算? 影响PPC广告成本预算的因素 1、产品类别:不同类别的产品竞争程度不同&…...
Qt 信号和槽
目录 概念 代码 mainwindow.h me.h xiaohuang.h main.cc mainwindow.cc me.cc xianghuang.cc mainwindow.ui 自定义信号的要求和注意事项: 自定义槽的要求和注意事项: 概念 信号槽是 Qt 框架引以为豪的机制之一。所谓信号槽,实际就是观察者模式(发布-订…...
Linux基本命令二
Linux基本命令二 1、head 命令 head **作用:**用于查看文件的开头部分的内容,有一个常用的参数 -n 用于显示行数,默认为 10,即显示 10 行的内容 **语法:**head [参数] [文件] 命令参数: 参数…...
isbn api开放接口
接口地址:http://openapi.daohe168.com.cn/api/library/isbn/query?isbn9787115618085&appKeyd7c6c07a0a04ba4e65921e2f90726384 响应结果: { "success": true, "code": "200", "message": …...
助力企业实现更简单的数据库管理,ATOMDB 与 TDengine 完成兼容性互认
为加速数字化转型进程,当下越来越多的企业开始进行新一轮数据架构改造升级。在此过程中,全平台数据库管理客户端提供了一个集中管理和操作数据库的工具,提高了数据库管理的效率和便利性,减少了人工操作的复杂性和错误率࿰…...
如何通过低代码工具,提升运输行业的运营效率和服务质量
《中国数字货运发展报告》显示,2022年我国公路货运市场规模在5万亿元左右。其中,数字货运整体市场规模约为7000亿元,市场渗透率约为15%。而以小微企业为主的货运行业,却以小、散、乱的行业特征,承载着5万亿元左右的市场…...
Vue3中调用外部iframe链接方法
业务场景,点击某个按钮需要跳转到外部iframe的地址,但是需要在本项目内显示。以前项目中写过调用外部链接的功能,是有菜单的,但是这次是按钮,所以不能直接把地址配到菜单里。 实现方法:在本地路由文件里写个…...
Node——事件的监听与触发
Node.js是由事件驱动的,每个任务都可以当作一个事件来处理,本贴将对Node.js中的events模块及其中处理事件的类EventEmitter的使用进行详细讲解。 1、EventEmitter对象 在JavaScript中,通过事件可以处理许多用户的交互,比如鼠标…...
一个基于.NET Core开源、跨平台的仓储管理系统
前言 今天给大家推荐一个基于.NET Core开源、跨平台的仓储管理系统,数据库支持MSSQL/MySQL:ZEQP.WMS。 仓储管理系统介绍 仓储管理系统(Warehouse Management System,WMS)是一种用于管理和控制仓库操作的软件系统&…...
主机安全-WindowsLinux的SSH安全加固
信息安全相关 - 建设篇 第三章 主机安全-Linux的SSH安全加固 信息安全相关 - 建设篇系列文章回顾下章内容主机安全-Linux的SSH安全加固前言Windows openssh相关命令,安装openssh获取openssh命令Windows openssl相关命令,安装Git获取openssl命令修复 CVE-…...
pcie-2-rj45速度优化
背景: 目前用iperf3打流传输速率达不到要求,千兆实际要求跑到800M以上: 优化方案: 1.优化defconfig: 首先编译user版本验证看是否正常 debug版本关闭CONFIG_SLUB_DEBUG_ON宏控。 2.找FAE ,通过更换驱动,或者更新驱动来优化 3.绑定大核: 以8125网卡为例,udp…...
AWVS 使用方法归纳
1.首先确认扫描的网站,以本地的dvwa为例 2.在awvs中添加目标 输入的地址可以是域名也可以是ip,只要本机可以在浏览器访问的域名或ip即可 添加地址及描述之后,点击保存,就会展现出目标设置选项 business criticality译为业务关键…...
数据库基础入门 — SQL运算符
我是南城余!阿里云开发者平台专家博士证书获得者! 欢迎关注我的博客!一同成长! 一名从事运维开发的worker,记录分享学习。 专注于AI,运维开发,windows Linux 系统领域的分享! 本…...
SELinux零知识学习二十九、SELinux策略语言之类型强制(14)
接前一篇文章:SELinux零知识学习二十八、SELinux策略语言之类型强制(13) 二、SELinux策略语言之类型强制 4. 类型规则 类型规则在创建客体或在运行过程中重新标记时指定其默认类型。在策略语言中定义了两个类型规则: type_transtition在域转换过程中标记行为发生时以及创…...
Git控制指令
git status查看当前本地分支的修改状态 git diff 文件路径 查看具体文件的修改内容 git log打印用户信息 git remote -v查看远程地址 git checkout -- *还原被删除的文件 git rm -r --force .删除本地所有文件 git commit -m "Remove all files from repositor…...
C#中警告CA1050、CA1821、CA1822、CA1859、CA2249及处理
目录 一、CA1050警告及处理 1.如何解决冲突: 2.何时禁止显示警告: 二、CA1821警告及处理 三、CA1822警告及处理 四、CA1859警告及处理 1.警告解决之前 2.警告解决之后 3.解决办法 1.警告解决之前 2.警告解决之后 3.解决办法 五、CA2249警告…...
【Cmake】Cmake基础学习
CMake学习 一、基础学习 1. 利用Cmake进行单个源代码构建可执行文件 (1)基础命令 最基本的 CMake项目是由单个源代码文件构建的可执行文件。对于这样的简单项目,只需要一个包含三个命令的 CMakeLists.txt 文件。 注意: 虽然 CMake 支持大写、小写和混合大小写命令,但是…...
路径规划之Best-First Search算法
系列文章目录 路径规划之Dijkstra算法 路径规划之Best-First Search算法 路径规划之Best-First Search算法 系列文章目录前言一、Best-First Search算法1.1 起源1.2 过程 三、简单使用 前言 Best-First Search算法和Dijkstra算法类似,都属于BFS的扩展或改进 一、…...
【Layui】动态时间线
官方时间线 代码<fieldset class="layui-elem-field layui-field-title" style="margin-top: 30px;">...
浏览器访问 AWS ECS 上部署的 Docker 容器(监听 80 端口)
✅ 一、ECS 服务配置 Dockerfile 确保监听 80 端口 EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]或 EXPOSE 80 CMD ["python3", "-m", "http.server", "80"]任务定义(Task Definition&…...
超短脉冲激光自聚焦效应
前言与目录 强激光引起自聚焦效应机理 超短脉冲激光在脆性材料内部加工时引起的自聚焦效应,这是一种非线性光学现象,主要涉及光学克尔效应和材料的非线性光学特性。 自聚焦效应可以产生局部的强光场,对材料产生非线性响应,可能…...
跨链模式:多链互操作架构与性能扩展方案
跨链模式:多链互操作架构与性能扩展方案 ——构建下一代区块链互联网的技术基石 一、跨链架构的核心范式演进 1. 分层协议栈:模块化解耦设计 现代跨链系统采用分层协议栈实现灵活扩展(H2Cross架构): 适配层…...
C# 类和继承(抽象类)
抽象类 抽象类是指设计为被继承的类。抽象类只能被用作其他类的基类。 不能创建抽象类的实例。抽象类使用abstract修饰符声明。 抽象类可以包含抽象成员或普通的非抽象成员。抽象类的成员可以是抽象成员和普通带 实现的成员的任意组合。抽象类自己可以派生自另一个抽象类。例…...
《基于Apache Flink的流处理》笔记
思维导图 1-3 章 4-7章 8-11 章 参考资料 源码: https://github.com/streaming-with-flink 博客 https://flink.apache.org/bloghttps://www.ververica.com/blog 聚会及会议 https://flink-forward.orghttps://www.meetup.com/topics/apache-flink https://n…...
重启Eureka集群中的节点,对已经注册的服务有什么影响
先看答案,如果正确地操作,重启Eureka集群中的节点,对已经注册的服务影响非常小,甚至可以做到无感知。 但如果操作不当,可能会引发短暂的服务发现问题。 下面我们从Eureka的核心工作原理来详细分析这个问题。 Eureka的…...
蓝桥杯 冶炼金属
原题目链接 🔧 冶炼金属转换率推测题解 📜 原题描述 小蓝有一个神奇的炉子用于将普通金属 O O O 冶炼成为一种特殊金属 X X X。这个炉子有一个属性叫转换率 V V V,是一个正整数,表示每 V V V 个普通金属 O O O 可以冶炼出 …...
HDFS分布式存储 zookeeper
hadoop介绍 狭义上hadoop是指apache的一款开源软件 用java语言实现开源框架,允许使用简单的变成模型跨计算机对大型集群进行分布式处理(1.海量的数据存储 2.海量数据的计算)Hadoop核心组件 hdfs(分布式文件存储系统)&a…...
【生成模型】视频生成论文调研
工作清单 上游应用方向:控制、速度、时长、高动态、多主体驱动 类型工作基础模型WAN / WAN-VACE / HunyuanVideo控制条件轨迹控制ATI~镜头控制ReCamMaster~多主体驱动Phantom~音频驱动Let Them Talk: Audio-Driven Multi-Person Conversational Video Generation速…...
Java毕业设计:WML信息查询与后端信息发布系统开发
JAVAWML信息查询与后端信息发布系统实现 一、系统概述 本系统基于Java和WML(无线标记语言)技术开发,实现了移动设备上的信息查询与后端信息发布功能。系统采用B/S架构,服务器端使用Java Servlet处理请求,数据库采用MySQL存储信息࿰…...
