一、概述

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

013-elasticsearch5.4.3【五】-搜索API【二】term术语查询-termQuery、rangeQuery、existsQuery、prefixQuery、wildcardQuery、regexpQuery、fuzzyQuery的更多相关文章

  1. 015-elasticsearch5.4.3【五】-搜索API【四】Joining 多文档查询、GEO查询、moreLikeThisQuery、script脚本查询、span跨度查询

    一.Joining 多文档查询 joining query 像Elasticsearch这样的分布式系统中执行完整的SQL样式连接非常昂贵.相反,Elasticsearch提供两种形式的连接,旨在水平 ...

  2. Elasticsearch核心技术(五):搜索API和搜索运行机制

    本文将从数据存储和搜索的角度简单分析Elasticsearch的搜索运行机制,主要涉及搜索API.搜索机制.存在问题和解决方案. 4.1 Search API Search API允许用户执行一个搜索 ...

  3. Android BLE与终端通信(五)——Google API BLE4.0低功耗蓝牙文档解读之案例初探

    Android BLE与终端通信(五)--Google API BLE4.0低功耗蓝牙文档解读之案例初探 算下来很久没有写BLE的博文了,上家的技术都快忘记了,所以赶紧读了一遍Google的API顺便 ...

  4. ElasticSearch查询 第一篇:搜索API

    <ElasticSearch查询>目录导航: ElasticSearch查询 第一篇:搜索API ElasticSearch查询 第二篇:文档更新 ElasticSearch查询 第三篇: ...

  5. Civil 3D API二次开发学习指南

    Civil 3D构建于AutoCAD 和 Map 3D之上,在学习Civil 3D API二次开发之前,您至少需要了解AutoCAD API的二次开发,你可以参考AutoCAD .NET API二次开 ...

  6. elasticsearch系列四:搜索详解(搜索API、Query DSL)

    一.搜索API 1. 搜索API 端点地址 从索引tweet里面搜索字段user为kimchy的记录 GET /twitter/_search?q=user:kimchy 从索引tweet,user里 ...

  7. [LeetCode] Search a 2D Matrix II 搜索一个二维矩阵之二

    Write an efficient algorithm that searches for a value in an m x n matrix. This matrix has the follo ...

  8. [LeetCode] Search a 2D Matrix 搜索一个二维矩阵

    Write an efficient algorithm that searches for a value in an m x n matrix. This matrix has the follo ...

  9. [CareerCup] 11.6 Search a 2D Matrix 搜索一个二维矩阵

    11.6 Given an M x N matrix in which each row and each column is sorted in ascending order, write a m ...

随机推荐

  1. P2218 [HAOI2007]覆盖问题

    传送门 首先可以想到二分答案,然后考虑判断 注意到所有点的外包矩形的四条边一定要被覆盖到,而正方形只有 $3$ 个,所以一定有一个正方形在角落 考虑爆搜,枚举正方形在当前外包矩形的那个角,然后对剩下的 ...

  2. Runnable、Callable和Future三者对比

    Runnable是个借口,使用简单: 1. 实现该接口并重写run方法 2. 利用该类的对象创建线程 3. 线程启动时就会自动调用该对象的run方法     通常在开发中结合ExecutorServi ...

  3. 【学习总结】快速上手Linux玩转典型应用-第4章-准备工作

    课程目录链接 快速上手Linux玩转典型应用-目录 目录 1. 准备工作一 2. 准备工作二 ===================================================== ...

  4. MongoDB的使用学习之(六)MongoDB的高级查询之条件操作符

    此文分为两点,主要是在第二点--java 语法,但是按顺序必须先把原生态的语法写出来 (还有一篇文章也是不错的:MongoDB高级查询用法大全(包含MongoDB命令语法和Java语法,其实就是我整理 ...

  5. Ansible笔记(2)--配置清单

    一.Ansible Inventory配置及详解 Inventory是ansible管理主机信息的配置文件,默认存放在/etc/ansible/hosts.在使用时通过 -i 或 --inventor ...

  6. Flutter-Radio單選框

    Container( child: Radio<String>( value: "男", activeColor: Colors.red,//激活時的顏色 groupV ...

  7. Azure Messaging

    上篇博文中我们介绍了Azure ServiceBus Messaging的消息事务机制: Azure Messaging-ServiceBus Messaging消息队列技术系列7-消息事务(2017 ...

  8. ZROI 19.07.28 组合计数/lb

    T1 题意:\(n\)个变量,\(0 \leq x_i \leq c_i\),求\(\sum x_i = A\)方案数.\(n \leq 32\). Sol: \(n \leq 10\)的时候容斥很水 ...

  9. 【SaltStack官方版】—— states教程, part 2 - 更复杂的states和必要的事物

    states tutorial, part 2 - more complex states, requisites 本教程建立在第1部分涵盖的主题上.建议您从此处开始. 在Salt States教程的 ...

  10. synchronized 与 lock 的区别

    synchronized 和 lock 的用法区别 synchronized(隐式锁):在需要同步的对象中加入此控制,synchronized 可以加在方法上,也可以加在特定代码块中,括号中表示需要锁 ...