es查询--请求body
查询的JSON结构
普通查询
{
"query": { # 查询条件
"match_all": {} //匹配所有文档, 所有 _score 为1.0
# "match_all": {"boost": 1.2} # 改变 _score
# "match_none" {} # 不匹配任何文档
},
"_source": ["field1", "field2"] # 指定查询结果返回的字段, 不指定返回所有字段
"size": 10 # 返回10条结果, 默认10
"from": 10 # 从第10条(索引从0开始)开始返回, 默认0
"sort": { # 指定排序规则, 不指定按照相似度得分降序排序
"field": {"order": "desc"} # field字段降序排序
}
}
多条件查询
{
"query": {
"bool": { # 合并多个查询
"must": [ # field字段包含v1且包含v2
{"match": {"field": "v1"}},
{"match": {"field": "v2"}}
],
"should": [ # field字段包含v1或包含v2
{"match": {"field": "v1"}},
{"match": {"field": "v2"}}
],
"must_not": [ # field字段既不包含v1也不包含v2
{"match": {"field": "v1"}},
{"match": {"field": "v2"}}
],
"filter": [ # 过滤, 过滤中的条件不会影响文档得分且可以被缓存
{
"range": { # 范围查询, 支持 gt, gte, lt, lte
"field": { # field >= 20000 and field <= 30000
"gte": 20000,
"lte": 30000
}
}
},
{"term": {"field": "v1"}}, # field字段包含v1
]
}
}
}
全文查询
- match 模糊匹配和短语或邻近查询
- match_phrase 匹配精确短语或单词邻近匹配
- match_phrase_prefix 对最后一个单词进行通配符搜索
- multi_match 多字段查询
- common 一个更专业的查询,它更多地优先考虑不常见的单词
- query_string 支持紧凑的Lucene 查询字符串语法,允许您在单个查询字符串中指定AND | OR | NOT条件和多字段搜索。仅限专家用户。
- simple_query_string 一种更简单,更健壮的query_string语法版本,适合直接向用户公开。
- intervals 全文查询,允许对匹配术语的排序和接近度进行细粒度控制
body
query
match 模糊搜索
{
"query": {
"match": {
"field": "四个 图形" # field字段包含 "四个" 或 "图形"
}
}
}
{
"query": {
"match": {
"field": { # field字段包含 "四个" 且包含 "图形"
"query": "四个 图形",
"operator": "and", # 支持 and 和 or 默认为 or
"zero_terms_query": "all", # "none" or "all", 当查询结果为空时, 展示所有文档
"cutoff_frequency": 0.001, # 将查询分解成两组,一组高频一组低频
"auto_generate_synonyms_phrase_query": False, # 近似词相关配置
}
}
}
}
match_phrase 短文本搜索
{
"query": {
"match": {
"field": { # field字段包含 "四个图形" 的文档(所匹配文本之间允许有标点但不能有字词)
"query": "四个 图形",
"zero_terms_query": "all", # "none" or "all", 当查询结果为空时, 展示所有文档
"analyzer": "my_analyzer", #
}
}
}
}
match_phrase_prefix 短文本搜索, 支持前缀匹配
比如 50 可以匹配到 500, 但中文下一个字就是一个词, 所以一般用不到
{
"query": {
"match": {
"field": { # 查询field字段包含以 50 开头的词的文档
"query": "50",
"max_expansions": 10, 最多向后匹配的字符数
}
}
}
}
multi_match 同时匹配多字段
{
"query": {
"match": {
"query": "2018",
"fields": ["field1", "field2"],
# "fields": ["*_name"], # 支持使用通配符匹配字段
# "fields": ["field1 ^ 3", "field2"], # 使用 ^ 提升某个字段的重要性
}
}
}
es查询--请求body的更多相关文章
- .NetCore下ES查询驱动 PlainElastic .Net 升级官方驱动 Elasticsearch .Net
1.背景 由于历史原因,笔者所在的公司原有的ES查询驱动采用的是 PlainElastic.Net, 经过询问原来是之前PlainElastic.Net在园子里文档较多,上手比较容易,所以最初作者选用 ...
- ES查询实例
注:转载自https://www.cnblogs.com/yjf512/p/4897294.html 作者:叶剑锋 elasticsearch 查询(match和term) es中的查询请求有两种方式 ...
- ES查询区分大小写
ES查询区分大小写 ES查询在默认的情况下是不区分大小写的,在5.0版本之后将string类型拆分成两种新的数据类型,text用于全文搜索(模糊搜索),keyword用于关键字搜索(精确搜索). 注意 ...
- mysql 处理查询请求过程
需要搞清楚查询为什么会慢,就要搞清楚mysql处理查询请求的过程: 1.客户端发送SQL请求给服务器 2.服务器检查是否可以在查询缓存中命中该SQL 查询缓存对SQL性能的影响. 1.需要对缓存加 ...
- ElasticSearch 学习记录之ES查询添加排序字段和使用missing或existing字段查询
ES添加排序 在默认的情况下,ES 是根据文档的得分score来进行文档额排序的.但是自己可以根据自己的针对一些字段进行排序.就像下面的查询脚本一样.下面的这个查询是根据productid这个值进行排 ...
- ES查询之刨根问底
昨天有一个需求,就是想要根据某个网关url做过滤,获取其下面所有的上下文nginx日志:如果直接"query":"https://XXX/YYY/ZZZ"发现有 ...
- SQL Server 查询请求
当SQL Server 引擎接收到用户发出的查询请求时,SQL Server执行优化器将查询请求(Request)和Task绑定,并为Task分配一个Workder,SQL Server申请操作系统的 ...
- Es查询工具使用
Kibana按照索引过滤数据 1.创建索引模式 2.查询索引中的数据 Es查询不返回数据 创建索引的时候指定mapping mappings={ "mappings": { &qu ...
- 第2部分 Elasticsearch查询-请求体查询、排序
一.请求体查询 请求体 search API, 之所以称之为请求体查询(Full-Body Search),因为大部分参数是通过http请求体而非查询字符串来传递的. 请求体查询:不仅可以处理自身的查 ...
随机推荐
- Flutter学习(7)——网络请求框架Dio简单使用
原文地址: Flutter学习(7)--网络请求框架Dio简单使用 | Stars-One的杂货小窝 Flutter系列学习之前都是在个人博客发布,感兴趣可以过去看看 网络请求一般APP都是需要的,在 ...
- Spring WebFlux 基础教程:WebSocket 使用
WebSocket 协议简介 WebSocket 协议提供了一种标准化的方式,在客户端和服务端建立在一个TCP 连接之上的全双工,双向通信的协议. WebSocket 交互开始于 HTTP 请求,使用 ...
- ssrf解题记录
ssrf解题记录 最近工作需要做一些Web的代码审计,而我Web方面还比较薄弱,决定通过一些ctf的题目打打审计基础,练练思维,在博客上准备开几个专题专门记录刷题的过程. pwn题最近做的也很少,也要 ...
- rancher v1.6.29部署K8s
1. 前提:上一文中,已部署好单节点Rancher v1.6.29 2. 在Rancher中,添加环境模板 修改k8s设置参数 参数修改明细: Private Registry for Add-Ons ...
- ☕【Java技术指南】「并发原理专题」AQS的技术体系之CLH、MCS锁的原理及实现
背景 SMP(Symmetric Multi-Processor) 对称多处理器结构,它是相对非对称多处理技术而言的.应用十分广泛的并行技术. 在这种架构中,一台计算机由多个CPU组成,并共享内存和其 ...
- VLAN-2 配置Trunk接口
一.实验拓扑图 二.实验编址 三.实验步骤 1.给对应的PC设置对应的IP和掩码还有接口,以及根据需要划分不同的vlan区域,再用文本标记出不同部门. 2.启动设备(全选) 3.首先用ping命令检查 ...
- noip33
T1 第一个猎人死的轮数等于在1号猎人之前死的猎人数+1,如果当前这个人没死,那么他死在一号猎人之前的概率为 \(\frac{w_{i}}{w_{1}+w_{i}}\),因为每死一个就会造成1的贡献, ...
- NOIP 模拟 7 寿司
题解 题目 这道题考试的时候直接打暴力,结果暴力连样例都过不了,最后放上去一个玄学东西,骗了 \(5pts\). 正解: 此题中我们可以看到原序列是一个环,所以我们要把它拆成一条链,那么我们需要暴力枚 ...
- node 报错 throw er; // Unhandled 'error' event 解决办法
node 报错 Starting child process with 'node web.js' events.js:183 throw er; // Unhandled 'error' event ...
- js简单实现拦截访问指定网页
最近闲的无事,写个脚本玩玩,实现拦截访问指定网址 浏览器插件 要想实现这个功能,就要自定义一个浏览器插件 最简单的浏览器插件有两个文件,分别是manifest.json和**.js.首先新建一个文件夹 ...