zl程序教程

您现在的位置是:首页 >  其他

当前栏目

013-elasticsearch5.4.3【五】-搜索API【二】term术语查询-termQuery、rangeQuery、existsQuery、prefixQuery、wildcardQuery、regexpQuery、fuzzyQuery

搜索API 查询 术语 013 term
2023-09-14 09:08:48 时间

一、概述

  虽然全文查询将在执行之前分析查询字符串,但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