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请求体而非查询字符串来传递的. 请求体查询:不仅可以处理自身的查 ...
随机推荐
- C++ //this 指针的使用 //1 解决名称冲突 //2 返回对象本身 用 *this
1 //this 指针的使用 2 //1 解决名称冲突 3 //2 返回对象本身 用 *this 4 5 #include <iostream> 6 #include <string ...
- 字节跳动Android面试凉凉,挥泪整理面筋,你不看看吗?
想在金九银十找工作的现在可以开始准备了,这边给大家分享一下面试会遇到的问题. 找工作还是需要大家不要担心,由于我们干这一行的接触人本来就不多,难免看到面试官会紧张,主要是因为怕面试官问的答不上来,答不 ...
- shell——sort、uniq、tr、cut和eval命令
一.排序命令sort 以行位单位对文件内容进行排序,也可以根据不同的数据类型进行排序 格式:sort [选项] 参数 格式:cat file | sort 选项 1.2常用选项 选项说明 -f 忽略大 ...
- netty系列之:netty中的懒人编码解码器
目录 简介 netty中的内置编码器 使用codec要注意的问题 netty内置的基本codec base64 bytes compression json marshalling protobuf ...
- 理解SpingAOP
目录 什么是AOP? AOP术语 通知(Advice) 连接点(Join point) 切点(Pointcut) 连接点和切点的区别 切面(Aspect) 引入(Introduction) 织入(We ...
- 计算文件的MD5值和sha256值
1.计算文件的MD5值. 1)linux系统计算 MD5值:md5sum+文件名 sha256值:sha256su+文件名 2)windows系统计算 MD5值:利用Notepad++工具计算 sha ...
- zookeeper同一台服务器创建伪集群
下载zk wget https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.7.0/apache-zookeeper-3.7 ...
- vue路由history模式,nginx配置
nginx配置内容 # For more information on configuration, see: # * Official English Documentation: http://n ...
- 虚拟机--第二章java内存区域与内存溢出异常--(抄书)
这是本人阅读周志明老师的<深入理解Java虚拟机>第二版抄写的,有很多省略,不适合直接阅读,需要阅读请出门左转淘宝,右转京东,支持周老师(侵权请联系删除) 第二章java内存区域与内存溢出 ...
- 传统JIT和java9新特性AOT理解
java慢的原因 1. 除了少量基本类型用栈存储外,所有对象都使用堆存储.堆的性能低于栈. 2. 很多强制类型转换(cast)或加查,耗用内存大.java运行时对类型检测,如果类型不正确会抛出Cl ...