查询的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的更多相关文章

  1. .NetCore下ES查询驱动 PlainElastic .Net 升级官方驱动 Elasticsearch .Net

    1.背景 由于历史原因,笔者所在的公司原有的ES查询驱动采用的是 PlainElastic.Net, 经过询问原来是之前PlainElastic.Net在园子里文档较多,上手比较容易,所以最初作者选用 ...

  2. ES查询实例

    注:转载自https://www.cnblogs.com/yjf512/p/4897294.html 作者:叶剑锋 elasticsearch 查询(match和term) es中的查询请求有两种方式 ...

  3. ES查询区分大小写

    ES查询区分大小写 ES查询在默认的情况下是不区分大小写的,在5.0版本之后将string类型拆分成两种新的数据类型,text用于全文搜索(模糊搜索),keyword用于关键字搜索(精确搜索). 注意 ...

  4. mysql 处理查询请求过程

    需要搞清楚查询为什么会慢,就要搞清楚mysql处理查询请求的过程: 1.客户端发送SQL请求给服务器 2.服务器检查是否可以在查询缓存中命中该SQL   查询缓存对SQL性能的影响. 1.需要对缓存加 ...

  5. ElasticSearch 学习记录之ES查询添加排序字段和使用missing或existing字段查询

    ES添加排序 在默认的情况下,ES 是根据文档的得分score来进行文档额排序的.但是自己可以根据自己的针对一些字段进行排序.就像下面的查询脚本一样.下面的这个查询是根据productid这个值进行排 ...

  6. ES查询之刨根问底

    昨天有一个需求,就是想要根据某个网关url做过滤,获取其下面所有的上下文nginx日志:如果直接"query":"https://XXX/YYY/ZZZ"发现有 ...

  7. SQL Server 查询请求

    当SQL Server 引擎接收到用户发出的查询请求时,SQL Server执行优化器将查询请求(Request)和Task绑定,并为Task分配一个Workder,SQL Server申请操作系统的 ...

  8. Es查询工具使用

    Kibana按照索引过滤数据 1.创建索引模式 2.查询索引中的数据 Es查询不返回数据 创建索引的时候指定mapping mappings={ "mappings": { &qu ...

  9. 第2部分 Elasticsearch查询-请求体查询、排序

    一.请求体查询 请求体 search API, 之所以称之为请求体查询(Full-Body Search),因为大部分参数是通过http请求体而非查询字符串来传递的. 请求体查询:不仅可以处理自身的查 ...

随机推荐

  1. 2021大厂Android面试高频100题最新汇总(附答案详解)

    前言 现在越来越多的人应聘工作时都得先刷个几十百来道题,不刷题感觉都过不了面试. 无论是前后端.移动开发,好像都得刷题,这么多人通过刷题过了面试,说明刷题对于找工作还是有帮助的. 不过这其中有一个问题 ...

  2. lerna 常用命令

    lerna 介绍 lerna 处理机构 固定模式(fixed) 所有包是统一的版本号,每次升级,所有包版本统一更新,不管这个包内容改变与否 具体体现在,lerna 的配置文件 lerna.json 中 ...

  3. 树莓派应用Docker

    本期通过在树莓派上配置 Docker,来介绍 Docker 应用,欢迎来到"万物皆可 Docker"的时代! 什么是 Docker ? Docker 最初是 dotCloud 公司 ...

  4. centos7上用docker搭建简单的前后端分离项目

    1. 安装docker Docker 要求 CentOS 系统的内核版本高于 3.10 ,首先验证你的CentOS 版本是否支持 Docker . 通过 uname -r 命令查看你当前的内核版本 使 ...

  5. Java HashSet和TreeSet【笔记】

    Java HashSet和TreeSet[笔记] PS:HashSet.TreeSet 两个类是在 Map 的基础上组装起来的类 HashSet 类注释 1.底层实现基于 HashMap,所以迭代时不 ...

  6. Java之JSP

    JSP JSP简介 JSP指的是 JavaServerPages ,Java服务器端页面,也和Servlet一样,用来开发动态web JSP页面中可以嵌入java代码为用户提供动态数据 JSP原理 J ...

  7. VLAN-1 基础配置及access接口

    一.实验拓扑图 二.实验编制 三.实验步骤 1.给对应的PC设置对应的IP和掩码还有接口,以及根据需要划分不同的vlan区域,再用文本标记出不同部门. 2.启动设备(全选) 3.首先用ping命令检查 ...

  8. Spring全家桶--单数据源的配置

    前言 spring数据源的配置网络上有很多例子,这里我也来介绍一下单数据源配置的例子,基于SpringBoot的方式和原生的Spring的方式. 一.生成项目骨架(SpringBoot),运行一个简单 ...

  9. noip29

    T1 以下的LIS代指最长不降子序列. 考场看到取模,便想到了之前写过的Medain,取模操作让序列分布均匀,对应到本题上,既然是求LIS,那它应该是有循环节的,后来打表证实确实是有. 然后,我码了个 ...

  10. C#中,async关键字到底起什么作用?

    标记了async,函数里就可以用await,return的语义也会发生变化,返回类型也必须是Task或者Task<T>.所以这就是个语法而已,不要去对async钻牛角尖.你这个问题就像为什 ...