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请求体而非查询字符串来传递的. 请求体查询:不仅可以处理自身的查 ...
随机推荐
- JS的FileSaver在Chrome上保存失败
在使用JavaSript的FileSaver保存文件时,IE11上好的,chrome上反没响应,不能保存文件.寻找了半天,最好发现是因为在FileSaver之外还有一个自定义的全局URL变量,把这个U ...
- STM32—TIMx实现编码器四倍频
文章目录 一.储备知识 二.TIMx的编码器模式介绍 1.计数边沿设置 2.选择极性和使能 3.使能 4.计数方向 三.代码部分 一.储备知识 通过STM32的定时器编码器接口模式对编码器进行四倍频, ...
- Java中使用split方法根据英文问号?切割字符串时报错
因为正则表达式的原因,我们无法在java中直接使用String.split("?"),需要先转义其正确写法为: public static void splitStr() { St ...
- WinForm嵌入Web网页的解决方案
企业级信息化系统绝大部分采用BS架构实现,如门户网站.OA系统.电商网站等,通过浏览器输入Web网址即可访问,对于使用者来说非常便捷,对于开发维护者来说也非常方便,程序维护只需更新服务器即可,使用者无 ...
- 题解 Lost My Music
传送门 多明显的斜率式然而我没有看出来 然而不管是我乱搞的思路还是正解的凸包思路都需要一个可持久化栈 考场上想到可持久化单调栈,但不会实现-- 其实单调栈不管是否可持久化都能倍增弹栈 但普通单调栈本来 ...
- docker 安装部署 mysql(配置文件启动)
获取 mysql 镜像 docker pull mysql:5.6 docker images 创建容器 创建宿主机 redis 容器的数据和配置文件目录 # 创建宿主机 redis 容器的数据和配置 ...
- beeline: 新版连接Hive server的工具
HiveServer2 支持一个新的命令行Shell,称为Beeline,它是基于SQLLine CLI的JDBC客户端.它是从 Hive 0.11版本引入的,是Hive新的命令行客户端工具.Hive ...
- 十五:JDBC学习入门
一.JDBC相关概念介绍 1.1.数据库驱动 这里的驱动的概念和平时听到的那种驱动的概念是一样的,比如平时购买的声卡,网卡直接插到计算机上面是不能用的,必须要安装相应的驱动程序之后才能够使用声卡和网卡 ...
- WPF---数据绑定(一)
一.何为数据绑定 场景:考虑一个Window上有一个TextBox和一个Slider两个元素,当我们拖动滑动条的时候,会在TextBox中显示当前滑动条的数值:当我们在TextBox中输入一个有效值, ...
- C# WCF的POST请求包含Stream及多个参数
当使用WCF的API的POST请求时,如果参数列表里,除了Stream类型形参,还具有多个形参, 在寄宿过程中会报错: 约定"IService1"中的操作"DoWork& ...