结构化查询

1、请求体查询

  GET(POST) /_search

    POST /_search
    {
      "from": 30,
      "size": 10
    }

  
2、DSL

  使用结构化查询, 你需要传递 query 参数:

  

 3、合并多子句

  查询子句就像是搭积木一样, 可以合并简单的子句为一个复杂的查询语句, 比如:

  叶子子句(leaf clauses)(比如 match 子句)用以在将查询字符串与一个字段(或多字段)进行比较
  复合子句(compound)用以合并其他的子句。 例如, bool 子句允许你合并其他的合法子句, must , must_not 或者 should

  

 4、查询与过滤

  结构化查询( Query DSL) 和结构化过滤( Filter DSL) 。 查询与过滤语句非常相似, 但是它们由于使用目的不同而稍有差异

 5、最重要的查询过滤语句

  term过滤:主要用于精确匹配哪些值,如数字,布尔,日期,未进行分词的字符串

    

  terms过滤:与term类似,terms允许有多个匹配条件。

    

  range过滤:允许指定范围匹配。

    

   exists和missing过滤:exists 和 missing 过滤可以用于查找文档中是否包含指定字段或没有某个字段, 类似于SQL语句中的 IS_NULL 条件

    

   bool过滤:

    bool 过滤可以用来合并多个过滤条件查询结果的布尔逻辑, 它包含一下操作符:
    must :: 多个查询条件的完全匹配,相当于 and 。
    must_not :: 多个查询条件的相反匹配, 相当于 not 。
    should :: 至少有一个查询条件匹配, 相当于 or 。
    这些参数可以分别继承一个过滤条件或者一个过滤条件的数组:

    

   match_all查询:

    使用 match_all 可以查询到所有文档, 是没有查询条件下的默认语句

    

  match查询:

    match 查询是一个标准查询, 不管你需要全文本查询还是精确查询基本上都要用到它。如果你使用 match 查询一个全文本字段,

    它会在真正查询之前用分析器先分析 match 一下查询字符

    

    如果用 match 下指定了一个确切值, 在遇到数字, 日期, 布尔值或者 not_analyzed 的字符串时, 它将为你搜索你给定的值

    

  multi_match查询:

     multi_match 查询允许你做 match 查询的基础上同时搜索多个字段:
    

   bool查询:

      bool 查询与 bool 过滤相似, 用于合并多个查询子句。 不同的是, bool 过滤可以直接给出是否匹配成功, 而 bool 查询要计算每一个查询子句的 _score ( 相关性分值) 。
    must :: 查询指定文档一定要被包含。
    must_not :: 查询指定文档一定不要被包含。
    should :: 查询指定文档, 有则可以为文档相关性加分。

    

6、带过滤的查询语句

  

 7、验证查询

  /megacorp/_validate/query?explain

  显示查询过程

  

elasticSearch(四)--结构化查询的更多相关文章

  1. ElasticSearch(6)-结构化查询

    引用:ElasticSearch权威指南 一.请求体查询 请求体查询 简单查询语句(lite)是一种有效的命令行_adhoc_查询.但是,如果你想要善用搜索,你必须使用请求体查询(request bo ...

  2. ElasticSearch 5学习(10)——结构化查询(包括新特性)

    之前我们所有的查询都属于命令行查询,但是不利于复杂的查询,而且一般在项目开发中不使用命令行查询方式,只有在调试测试时使用简单命令行查询,但是,如果想要善用搜索,我们必须使用请求体查询(request ...

  3. ElasticSearch权威指南学习(结构化查询)

    请求体查询 简单查询语句(lite)是一种有效的命令行adhoc查询.但是,如果你想要善用搜索,你必须使用请求体查询(request body search)API. 空查询 我们以最简单的 sear ...

  4. ElasticSearch 基本概念 and 索引操作 and 文档操作 and 批量操作 and 结构化查询 and 过滤查询

    基本概念 索引: 类似于MySQL的表.索引的结构为全文搜索作准备,不存储原始的数据. 索引可以做分布式.每一个索引有一个或者多个分片 shard.每一个分片可以有多个副本 replica. 文档: ...

  5. elasticsearch结构化查询过滤语句-----4

    1.之前三节讲述的都是索引结构及内容填充的部分,既然添加了数据那我们的目的无非就是增产改查crudp,我先来讲讲查询-----结构化查询 我们看上图截图两种方式: 1)第一种,在索引index5类型s ...

  6. elasticsearch 深入 —— 结构化搜索

    结构化搜索 结构化搜索(Structured search) 是指有关探询那些具有内在结构数据的过程.比如日期.时间和数字都是结构化的:它们有精确的格式,我们可以对这些格式进行逻辑操作.比较常见的操作 ...

  7. SQL结构化查询语句

    SQL结构化查询语句 SQL定义了查询所有关系型数据库的规则. 1.通用语法 SQL语句可以单行或者多行书写,以分号结尾 可以使用空格和缩进增强可读性 不区分大小写,但是关键字建议大写 3种注释 注释 ...

  8. ElasticSearch常用结构化搜索

    最近,需要用到ES的一些常用的结构化搜索命令,因此,看了一些官方的文档,学习了一下.结构化查询指的是查询那些具有内在结构的数据,比如日期.时间.数字都是结构化的. 它们都有精确的格式,我们可以对这些数 ...

  9. Elasticsearch系列---结构化搜索

    概要 结构化搜索针对日期.时间.数字等结构化数据的搜索,它们有自己的格式,我们可以对它们进行范围,比较大小等逻辑操作,这些逻辑操作得到的结果非黑即白,要么符合条件在结果集里,要么不符合条件在结果集之外 ...

  10. (四) 结构化查询语言SQL——2

    3)ORDER BY排序语句 通常,查询的结果是以无序的方式显示的,有时需要将查询结果按照一定次序来进行排序.ORDER BY就可以用上了,例如查询课程号为202的课程成绩的所有信息,并按照成绩降序排 ...

随机推荐

  1. Day 24 24.2:逆向分析2 - 完美世界案例

    完美世界逆向分析 url:https://passport.wanmei.com/login?location=L3NhZmUv 定位到正确的断点位置 进行js改写操作 断点代码的关键字:setPub ...

  2. Vue框架中有关 computed的相关知识

    1,传统使用computed属性的方式如下: 注意:此时如果我们点击修改的时候会有如下警告(表示computed属性不可以修改,如果非得修改,我们应该如下下图所示操作) 2,修改computed属性的 ...

  3. ChatGPT is at capacity right now.ChatGPT Plus subscriber login Add your email for a personalized login link的解决办法

    原因 你的ip地区用的人过多. 解决办法 在右侧页面填入邮箱,能收到邮件立刻就能登录,如果没有,就换地区试试,不行就等等吧 邮件示例:

  4. 8. fitBounds(用了这个你就不用在设置zoom, minZoom, maxZoom, center)

    1 <!DOCTYPE html> 2 <html lang="zh"> 3 <head> 4 <meta charset="U ...

  5. 软件测试肖sir__多线程、多进程、多协程

    Python并发编程有三种方式: 1.多线程Thread(threading)(读音:思来d,丁).多进程Process(multiprocessing).多协程Coroutine(asyncio) ...

  6. 二进制安装docker-20.10.9

    二进制包下载地址:https://download.docker.com/linux/static/stable/x86_64/  #解压tar xf docker-20.10.9.tgz #拷贝二进 ...

  7. nginx的优化及防盗链

    简介: Nginx是俄罗斯人编写的十分轻量级的HTTP服务器,Nginx,它的发音为"engine X",是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/S ...

  8. js 加密和解密

    // aes对称加密 const CryptoJS = require('crypto-js'); //引用AES源码js const key = CryptoJS.enc.Utf8.parse(&q ...

  9. 注意注意!!!!关于keil的问题,调试时候的bug

    1.keil变量不区分大小写: 2.KEIL调试debug时误报,未定义某变量 但是实际定义了的. 今天用keil写代码 感觉逻辑上没问题 但是始终不是那个效果 检查了半天错误问题.最后debug居然 ...

  10. win系统airtest+pytest-xdist服务器分布式运行。

    1.准备至少两台服务器,集群全部是局域网,(启动脚本的时候可以使用外网ip). 2.输出的报告地址,需要把文件夹设置成共享文件夹,(连接的时候使用内外ip). 启动脚本文件 import os, da ...