ElasticSearch入门语法基础知识
1、创建测试索引
PUT /test_index_person
{"settings": {"analysis": {"analyzer": {"ik_analyzer": {"type": "custom","tokenizer": "ik_smart"}}}},"mappings": {"properties": {"person_id": { "type": "integer" },"person_name": { "type": "text","analyzer": "ik_analyzer"},"gmt_create": { "type": "date","format": "strict_date_optional_time"},"gmt_modified": { "type": "date","format": "strict_date_optional_time"}}}
}
2、添加数据
POST /test_index_person/_doc
{"person_id": 1,"person_name": "张三 李四","gmt_create": "2024-07-31T10:00:00","gmt_modified": "2024-07-31T10:00:00"
}POST /test_index_person/_doc
{"person_id": 2,"person_name": "王五 赵六","gmt_create": "2024-07-31T11:00:00","gmt_modified": "2024-07-31T11:00:00"
}
POST /test_index_person/_doc
{"person_id": 3,"person_name": "葛哈哈哈张三","gmt_create": "2024-07-31T11:00:00","gmt_modified": "2024-07-31T11:00:00"
}
POST /test_index_person/_doc
{"person_id": 4,"person_name": "葛哈哈哈小黑子","gmt_create": "2024-07-31T11:00:00","gmt_modified": "2024-07-31T11:00:00"
}
POST /test_index_person/_doc
{"person_id": 5,"person_name": "赵六不是小黑子","gmt_create": "2024-07-31T11:00:00","gmt_modified": "2024-07-31T11:00:00"
}
POST /test_index_person/_doc
{"person_id": 6,"person_name": "张三是一个小黑子","gmt_create": "2024-07-31T11:00:00","gmt_modified": "2024-07-31T11:00:00"
}
3、修改数据
#更新数据,因为没有设置id,所以需要先查询到id
GET /test_index_person/_search
{"query": {"term": {"person_id": {"value": "1"}}}
}
POST /test_index_person/_update/VHvlB5EBxT0rb-io56C7
{"doc": {"person_name": "张三 李四哈哈哈"}
}
4、查询索引下的分词和ik分词器对搜索内容的分词
#查看test_index_person索引下对person_name某个内容的分词
GET /test_index_person/_analyze
{"field": "person_name","text": "张三是一个小黑子"
}
# IK分词器对搜索内容的分词
GET /_analyze
{"analyzer": "ik_max_word", "text": "张三"
}
5、查询所有文档
#匹配所有文档
GET /test_index_person/_search
{"query": {"match_all": {}}
}
6、分词查询测试
#查询分词测试
GET /test_index_person/_search
{"query": {"match": {"person_name": "葛赵六"}}
}
7、精确查询
#term查询适合用于匹配未分词的字段或者需要精确匹配的场景
GET /test_index_person/_search
{"query": {"term": {"person_id": {"value": "1"}}}
}
8、短语匹配
#短语匹配 返回所有person_name字段精确匹配短语"小黑子"的文档
GET /test_index_person/_search
{"query": {"match_phrase": {"person_name": "小黑子"}}
}
9、范围查询
#范围查询 gt(>) gte(>=) lt(<) lte(<=)
GET /test_index_person/_search
{"query": {"range": {"gmt_create": {"gte": "2024-01-31T11:00:00","lt": "2024-07-31T11:00:00"}}}
}
10、模糊匹配
#模糊匹配
GET /test_index_person/_search
{"query": {"fuzzy": {"person_name": "张三"}}
}
11、前缀匹配查询(适用非分词字段)
#前缀匹配查询(适用非分词字段)
GET /test_index_person/_search
{"query": {"prefix": {"person_name": {"value": "张三"}}}
}
12、布尔查询
#布尔查询 必须匹配(must) 过滤(filter) 至少匹配一个(should)
GET /test_index_person/_search
{"query": {"bool": {"must": [{"term": {"person_id": {"value": "1"}}}],"filter": [{"range": {"gmt_create": {"gte": "2024-07-31T10:00:00"}}}],"should": [{"term": {"person_name": {"value": "11"}}}],"must_not": [{"term": {"person_name": {"value": "哈哈"}}}]}}
}
13、分页
#分页 from开始 size 结束
GET /test_index_person/_search
{"query": {"match_all": {}},"from": 1, "size": 2
}
14、聚合查询
#对查询出来的值进行聚合查询 统计每个唯一值的个数
GET /test_index_person/_search
{"query": {"match": {"person_name": "张三"}}, "aggs": {"test_aggs": {"terms": {"field": "gmt_create"}}}
}
#对查询出来的值进行聚合查询 统计每个唯一值的个数 仅仅返回聚合结果
GET /test_index_person/_search
{"size": 0, "query": {"match": {"person_name": "张三"}}, "aggs": {"test_aggs": {"terms": {"field": "gmt_create"}}}
}
#多个聚合
GET /test_index_person/_search
{"aggs": {"test_aggs": {"terms": {"field": "gmt_create"}},"test2_aggs":{"avg": {"field": "person_id"}}}
}
#子聚合 先分组,再计算
GET /test_index_person/_search
{"aggs": {"test_aggs": {"terms": {"field": "gmt_create"}, "aggs": {"son_aggs_test": {"avg": {"field": "person_id"}}}}}
}
相关文章:
ElasticSearch入门语法基础知识
1、创建测试索引 PUT /test_index_person {"settings": {"analysis": {"analyzer": {"ik_analyzer": {"type": "custom","tokenizer": "ik_smart"}}}},"mappings": {"proper…...
【C++】C++应用案例-dolphin海豚记账本
目录 一、整体介绍 1.1、需求和目标 1.2、整体功能描述 二、页面及功能描述 2.1 主菜单 2.2 记账菜单 2.3 查询菜单 2.4 退出功能 三、流程设计 3.1 主流程 3.2 记账操作流程 3.3 查询操作流程 四、代码设计 4.1 核心思路 4.2 项目文件分类设计 4.2.1 头文件 …...
Matlab数据处理学习笔记
1 :数据清洗 注:数据读取 (1)读取工作表 % 指定要读取的工作表 filename sales_data.xlsx; sheetName Sheet2; % 或者使用工作表编号,例如:sheetNumber 2;% 读取指定工作表的数据 data readtable(fi…...
浏览器中的同源策略、CORS 以及相关的 Fetch API 使用
前言 笔者对前端 Web 技术的认真学习,其实开始于与 Fetch API 的邂逅。当时觉得 fetch() 的设计很不错,也很希望能够请求其它网站下的数据并作处理和展示。学习过程中 HTML 和 CSS 都还好说,由于几乎没有 Web 技术的基础,学习 Fe…...
爬虫 APP 逆向 ---> 粉笔考研
环境: 粉笔考研 v6.3.15:https://www.wandoujia.com/apps/1220941/history_v6031500雷电9 模拟器:https://www.ldmnq.com/安装 magisk:https://blog.csdn.net/Ruaki/article/details/135580772安装 Dia 插件 (作用:禁…...
2024河南萌新联赛第(三)场 河南大学
B. 正则表达式 题目: https://ac.nowcoder.com/acm/contest/87865/B 给出n个地址,每个地址的形式为x.x.x.x,找四个x都满足x>0&&x<255的个数 思路: 首先定义四个数组和一个字符,然后按题目所给的形式…...
回溯法---分割回文串
题目:给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是回文串。返回 s 所有可能的分割方案。 思路: 第一步:确定参数与返回值。参数为字符串s,分割起始下标startIndex,无返回值 第二…...
DDR等长,到底长度差多少叫等长?
DDR4看这一篇就够了 - 知乎 (zhihu.com) 【全网首发】DDR4 PCB设计规范&设计要点PCB资源PCB联盟网 - Powered by Discuz! (pcbbar.com) 终于看到较为权威的DDR4等长要求了: !!!! 依据这个要求,H616项目的等长线不合格:...
程序员面试题------N皇后问题算法实现
N皇后问题是一个著名的计算机科学问题,它要求在NN的棋盘上放置N个皇后,使得它们之间不能相互攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上。这个问题可以看作是一个回溯算法问题,通过逐步尝试不同的放置位置…...
【C++学习】6、继承
1、什么是继承? 继承描述的是类与类之间的关系,A类继承B类,A类就拥有B类的数据和方法。 继承的方式: 公有继承(public) 保护继承(protected) 私有继承(private&…...
从零开始的MicroPython(三) 按键与外部中断
上一篇:从零开始的MicroPython(二) GPIO及点灯代码 文章目录 前言硬件原理软件原理注意代码编写轮询外部中断其他 前言 点灯是嵌入式GPIO输出的典型,按键则是输入的典型。 硬件原理 按键对角接通。 软件原理 如果是一端接高电平,一端接单…...
Windows下编译安装Kratos
Kratos是一款开源跨平台的多物理场有限元框架。本文记录在Windows下编译Kratos的流程。 Ref. from Kratos KRATOS Multiphysics ("Kratos") is a framework for building parallel, multi-disciplinary simulation software, aiming at modularity, extensibility, a…...
汽车-腾讯2023笔试(codefun2000)
题目链接 汽车-腾讯2023笔试(codefun2000) 题目内容 现在塔子哥有 n 个汽车,所有的汽车都在数轴上,每个汽车有1.位置 pos 2.速度 v ,它们都以在数轴上以向右为正方向作匀速直线运动。 塔子哥可以进行任意次以下操作:选择两个汽车…...
软测面试二十问(最新面试)
1.软件测试的流程是什么 参加需求评审会,解决需求疑问---写测试用例---对测试用例进行评审---评审后开始执行测试---提交bug---追踪bug---关闭bug---回归测试---交叉测试---编写测试报告---冒烟测试 2.什么是黑盒测试和白盒测试?它们有何区别 黑盒测试…...
风吸杀虫灯采用新型技术 无公害诱虫捕虫
TH-FD2S】风吸杀虫灯利用害虫的趋光性和对特定波长的光源(如紫外光、蓝光)的敏感性,通过光波引诱害虫成虫扑灯。同时,内置的风扇产生强烈的气流,形成负压区,将害虫迅速吸入到收集器中。害虫在收集器内被风干…...
随手记录第十二话 -- JDK8-21版本的新增特性记录(Lambda,var,switch,instanceof,record,virtual虚拟线程等)
本文主要用于记录jdk8以来的新增特性及使用方法! 1.Java8 Lambda表达式(8) 1.1 方法引用 List<String> list List.of("1", "2", "3");list.forEach(i -> System.out.println(i));//方法引用list.forEach(System.out::println);1.2 接…...
SpringCloud网关 SpringBoot服务 HTTP/HTTPS路由/监听双支持
背景 一般来说SpringCloud Gateway到后面服务的路由属于内网交互,因此路由方式是否是Https就显得不是那么重要了。事实上也确实如此,大多数的应用开发时基本都是直接Http就过去了,不会一开始就是直接上Https。然而随着时间的推移,…...
JavaScript做网页是否过期的处理
通过路由上的参数生成唯一md5和路由上token做验证_md5 token-CSDN博客 前言:基于这篇文章我们做网页是否超时,网页是否过期的处理。打开一个网页允许他在一定时间内可以访问,过了这个时间就不可以访问了,encrypt是h5加密方法&…...
python coding时遇到的问题
Q:只有cpu的时候加载模型 A:checkpoint torch.load(model_path, map_locationtorch.device(‘cpu’)) Q:vscode的文件路径和spyder的不一样 A:在vscode中,右键要用的文件,选择“文件相对路径”...
攻防演练号角吹响,聚铭铭察高级威胁检测系统助您零失分打赢重保攻坚战
在数字化浪潮中,攻防演练成为了衡量网络安全防御力的核心标尺,其重要性与日俱增。这项由政府、行业监管或企业内部主导的安全活动,随着互联网普及而兴起,现已发展成为全球公认的检验网络安全体系效能的标准。它不仅关乎技术实力的…...
uniapp 对接腾讯云IM群组成员管理(增删改查)
UniApp 实战:腾讯云IM群组成员管理(增删改查) 一、前言 在社交类App开发中,群组成员管理是核心功能之一。本文将基于UniApp框架,结合腾讯云IM SDK,详细讲解如何实现群组成员的增删改查全流程。 权限校验…...
C++_核心编程_多态案例二-制作饮品
#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为:煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例,提供抽象制作饮品基类,提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...
【入坑系列】TiDB 强制索引在不同库下不生效问题
文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...
全球首个30米分辨率湿地数据集(2000—2022)
数据简介 今天我们分享的数据是全球30米分辨率湿地数据集,包含8种湿地亚类,该数据以0.5X0.5的瓦片存储,我们整理了所有属于中国的瓦片名称与其对应省份,方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...
江苏艾立泰跨国资源接力:废料变黄金的绿色供应链革命
在华东塑料包装行业面临限塑令深度调整的背景下,江苏艾立泰以一场跨国资源接力的创新实践,重新定义了绿色供应链的边界。 跨国回收网络:废料变黄金的全球棋局 艾立泰在欧洲、东南亚建立再生塑料回收点,将海外废弃包装箱通过标准…...
WordPress插件:AI多语言写作与智能配图、免费AI模型、SEO文章生成
厌倦手动写WordPress文章?AI自动生成,效率提升10倍! 支持多语言、自动配图、定时发布,让内容创作更轻松! AI内容生成 → 不想每天写文章?AI一键生成高质量内容!多语言支持 → 跨境电商必备&am…...
Spring是如何解决Bean的循环依赖:三级缓存机制
1、什么是 Bean 的循环依赖 在 Spring框架中,Bean 的循环依赖是指多个 Bean 之间互相持有对方引用,形成闭环依赖关系的现象。 多个 Bean 的依赖关系构成环形链路,例如: 双向依赖:Bean A 依赖 Bean B,同时 Bean B 也依赖 Bean A(A↔B)。链条循环: Bean A → Bean…...
SQL慢可能是触发了ring buffer
简介 最近在进行 postgresql 性能排查的时候,发现 PG 在某一个时间并行执行的 SQL 变得特别慢。最后通过监控监观察到并行发起得时间 buffers_alloc 就急速上升,且低水位伴随在整个慢 SQL,一直是 buferIO 的等待事件,此时也没有其他会话的争抢。SQL 虽然不是高效 SQL ,但…...
【Nginx】使用 Nginx+Lua 实现基于 IP 的访问频率限制
使用 NginxLua 实现基于 IP 的访问频率限制 在高并发场景下,限制某个 IP 的访问频率是非常重要的,可以有效防止恶意攻击或错误配置导致的服务宕机。以下是一个详细的实现方案,使用 Nginx 和 Lua 脚本结合 Redis 来实现基于 IP 的访问频率限制…...
基于Springboot+Vue的办公管理系统
角色: 管理员、员工 技术: 后端: SpringBoot, Vue2, MySQL, Mybatis-Plus 前端: Vue2, Element-UI, Axios, Echarts, Vue-Router 核心功能: 该办公管理系统是一个综合性的企业内部管理平台,旨在提升企业运营效率和员工管理水…...
