菜单 学习猿地 - LMONKEY

VIP

开通学习猿地VIP

尊享10项VIP特权 持续新增

知识通关挑战

打卡带练!告别无效练习

接私单赚外块

VIP优先接,累计金额超百万

学习猿地私房课免费学

大厂实战课仅对VIP开放

你的一对一导师

每月可免费咨询大牛30次

领取更多软件工程师实用特权

入驻
431
0

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

原创
05/13 14:22
阅读数 45891

一、概述

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

发表评论

0/200
431 点赞
0 评论
收藏
为你推荐 换一批