结构化查询

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. PKU2506Tiling

    https://blog.csdn.net/Harington/article/details/86612106

  2. 下拉刷新,上拉触底(.js里自带)

    <view>content值是{{cont}}</view> <button bindtap="add">+1</button>   ...

  3. Servlet(服务连接器)

    Servlet(Server Applet):是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据 ...

  4. 2.4 在DispatcherServlet的service方法中,通过ServletPath获取对应的Controller对象

    @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws Se ...

  5. 四点DLT (Direct Linear Transformation) 算法

    \(\mathrm{x}_{i}\) 表示变化前的齐次坐标 \(\mathbf{x}_{i}^{\prime}\) 表示变化后的齐次坐标 我们需要求到一个 \(3\times3\) 的变换矩阵 \(\ ...

  6. 微信开发获取code的时候总是提示 10003 redirect_uri域名与后台配置不一致

    填写的地址不能加 http://

  7. Java面向对象之接口的定义与实现

    接口 普通类:只有具体实现 抽象类:具体实现和规范(抽象方法)都有! 接口:只有规范!自己无法写方法.专业的约束!约束和实现分离:面向接口编程 接口就是规范,定义的是一组规则,体现了现实世界中&quo ...

  8. Oracle查看用户占用的表空间大小

    SELECT owner, tablespace_name, ROUND (SUM (BYTES) / 1024 / 1024, 2) "USED(M)" FROM dba_seg ...

  9. JAVA的注释和变量名称

    1.注释 (1)单行注释为//..... 例://这是一行注释 (2)多行注释是/*.......... .............*/ 例:/*我是第一行注释 我是第二行注释 我是第三行注释*/ ( ...

  10. UML 组成 1

    常用关系: 关联关系使用一条直线表示,比如  A与B关联 用于描述不同类的对象之间的结构关系,将多个类的实例联系在一起 是一种静态关系,基本与程序的运行没有关系 比如,部门与员工的关系,就是关联关系 ...