查询的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. 3、基于Python建立任意层数的深度神经网络

    一.神经网络介绍: 神经网络算法参考人的神经元原理(轴突.树突.神经核),在很多神经元基础上构建神经网络模型,每个神经元可看作一个个学习单元.这些神经元采纳一定的特征作为输入,根据自身的模型得到输出. ...

  2. Java异常01——捕获和抛出异常

    捕获和抛出异常 异常处理五个关键字 try , catch , finally , throw , throws try catch finally(快捷键:选中要要监控的代码语句 快捷键: ctrl ...

  3. DVWA(二): Brute Force(全等级暴力破解)

    tags: DVWA Brute Force Burp Suite Firefox windows2003 暴力破解基本利用密码字典使用穷举法对于所有的账号密码组合全排列猜解出正确的组合. LEVEL ...

  4. Android模块化开发实践

    一.前言 随着业务的快速发展,现在的互联网App越来越大,为了提高团队开发效率,模块化开发已经成为主流的开发模式.正好最近完成了vivo官网App业务模块化改造的工作,所以本文就对模块化开发模式进行一 ...

  5. 剑指 Offer 68 - II. 二叉树的最近公共祖先

    剑指 Offer 68 - II. 二叉树的最近公共祖先 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先. 百度百科中最近公共祖先的定义为:"对于有根树 T 的两个结点 p.q,最近 ...

  6. C#多线程详解(二)

    在上一节介绍了线程的基础知识,下面来研究多线程的优先级 using System; using System.Threading;namespace Test{    class TestThread ...

  7. WPF控件自定义样式(FasControls)

    一.界面预览

  8. java Date操作的相关代码

    /** * 获取现在时间,这个好用 * * @return返回长时间格式 yyyy-MM-dd HH:mm:ss */ public static Date getSqlDate() { Date s ...

  9. Struts2之文件上传与下载

    时间:2017-1-11 15:47 --使用commons-fileupload组件上传1.客户端    *   method="post"    *   <input t ...

  10. 超详细教程2021新版oracle官网下载Windows JAVA-jdk11并安装配置(其他版本流程相同)

    异想之旅:本人博客完全手敲,绝对非搬运,全网不可能有重复:本人无团队,仅为技术爱好者进行分享,所有内容不牵扯广告.本人所有文章发布平台为CSDN.博客园.简书和开源中国,后期可能会有个人博客,除此之外 ...