zoukankan      html  css  js  c++  java
  • 013-elasticsearch5.4.3【五】-搜索API【二】term术语查询-termQuery、rangeQuery、existsQuery、prefixQuery、wildcardQuery、regexpQuery、fuzzyQuery

    一、概述

      虽然全文查询将在执行之前分析查询字符串,但Term级查询将根据存储在倒排索引中的确切术语进行操作。

      这些查询通常用于结构化数据,如keyword、数字,日期和枚举,而不是全文字段。或者,它们允许您在分析过程之前制定低级查询。[es 5.x后使用json直接创建索引默认是text,但是可以使用【字段.keyword=‘aa’】方式进行term的使用]

    1.1、精准查询:termQuery【相当于sql:field = 1】

      查找包含指定字段中指定的确切术语的文档。因为name是字符串使用json方式创建,会除了text还会默认创建keyword字段。

    QueryBuilder qb = termQuery("name.keyword", "张三");

    1.2、精准in查询:termsQuery【相当于sql:field in (1,2,3)】

      查找包含指定字段中指定的任何确切术语的文档

    1.3、范围查询:rangeQuery【相当于sql:field > 1 and field<30】

      查找指定字段包含指定范围内的值(日期,数字或字符串)的文档

      lt 小于  from

      gt 大于 to

      lte 小于等于 from includeUpper 组合使用

      gte 大于等于 from includeLower组合使用

    1.4、存在查询:existsQuery【相当于sql:field is not null】

      查找指定字段包含任何非空值的文档。

    1.5、前缀查询:prefixQuery【相当于sql:field like '张*'】

      查找指定字段包含具有指定的确切前缀的术语的文档。

    1.6、通配符查询:wildcardQuery【相当于sql:field like '张_三*'】

      查找指定字段包含与指定模式匹配的术语的文档,其中模式支持单字符通配符(?)和多字符通配符(*)

    1.7、正则查询:regexpQuery

      查找指定字段包含与指定的正则表达式匹配的术语的文档。

    1.8、模糊度查询:fuzzyQuery【通过fuzziness设置可以错几个】

      查找指定字段包含与指定术语模糊相似的术语的文档。模糊度是以Levenshtein编辑距离1或2来衡量的。

    1.9、类型查询:typeQuery【相当于sql:select * from table

      查找指定类型的文档。

    1.10、类型主键查询:idsQuery【相当于sql:select * from table where id in (1,2)

    查找具有指定类型和ID的文档。

    附注:以上1.1~1.10对应示例

    github:https://github.com/bjlhx15/spring-cloud-base/tree/master/service6-es 

  • 相关阅读:
    洛谷 P1141 01迷宫
    洛谷 p1443
    setw
    Fliptile
    追牛
    Dungeon Master
    vim的一些基本操作
    洛谷 p1309 瑞士轮
    洛谷 p1090 合并果子
    selenium2 WebDriver 在asp.net项目中的应用
  • 原文地址:https://www.cnblogs.com/bjlhx/p/8520539.html
Copyright © 2011-2022 走看看