一、概述

  查询所使用的 QueryBuilders来源于以下

import static org.elasticsearch.index.query.QueryBuilders.*;

  请注意,您可以使用QueryBuilder对象上的toString()方法轻松打印(也称为调试)JSON生成的查询。

1.1、匹配所有

  最简单的查询,匹配所有文档,给它们一个_score 1.0。

QueryBuilder qb = matchAllQuery();

1.2、全文查询

  高级全文查询通常用于在全文字段(如电子邮件正文)上运行全文查询。他们了解如何分析被查询的字段,并在执行之前将每个字段的分析器(或search_analyzer)应用于查询字符串。

  该组中的查询是:

1)匹配查询:用于执行全文查询的标准查询,包括模糊匹配和短语或邻近查询。//查询出包含 value 的数据 或者包含不连续的字符

QueryBuilder qb = matchQuery("field","value" );

示例:查询:QueryBuilder qb = matchQuery("name", "张三");

结果

数据:{"address":"benjing","age":"12","name":"张三2"}
数据:{"address":"benjing","age":"12","name":"aa张三3","num":12}
数据:{"address":"benjing","age":"12","name":"张爱三","num":12}
数据:{"address":"benjing","age":"12","name":"张三3"}
数据:{"address":"benjing","age":"12","name":"李宏旭 张三3","num":12}
数据:{"address":"benjing","age":"12","name":"张四","num":12}

2)多匹配查询:multi_match查询,匹配查询的多字段版本。

QueryBuilder qb = multiMatchQuery(
"kimchy elasticsearch", //值
"user", "message" //字段
);

示例:查询:QueryBuilder qb = multiMatchQuery("张三 12", "name","age");

结果

数据:{"address":"benjing","age":"1","name":"张三"}
数据:{"address":"benjing","age":"12","name":"张三2"}
数据:{"address":"benjing","age":"12","name":"aa张三3","num":12}
数据:{"address":"benjing","age":"12","name":"张爱三","num":12}
数据:{"address":"benjing","age":"12","name":"张三3"}
数据:{"address":"benjing","age":"12","name":"李宏旭 张三3","num":12}
数据:{"address":"benjing","age":"12","name":"王五","num":3}
数据:{"address":"benjing","age":"12","name":"张四","num":12}
数据:{"address":"benjing","age":"12","name":"王五"}

3)common_terms查询:一个更专业的查询,它提供了对不常见单词的更多偏好。

QueryBuilder qb = commonTermsQuery("field","value");

示例:查询:QueryBuilder qb = commonTermsQuery("name", "张三");

结果:

数据:{"address":"benjing","age":"1","name":"张三"}
数据:{"address":"benjing","age":"12","name":"张三2"}
数据:{"address":"benjing","age":"12","name":"aa张三3","num":12}
数据:{"address":"benjing","age":"12","name":"张爱三","num":12}
数据:{"address":"benjing","age":"12","name":"张三3"}
数据:{"address":"benjing","age":"12","name":"李宏旭 张三3","num":12}

4)query_string查询:支持紧凑的Lucene查询字符串语法,允许您在单个查询字符串中指定AND | OR | NOT条件和多字段搜索。仅限专家用户。

QueryBuilder qb = queryStringQuery("+kimchy -elasticsearch"); //value

5)simple_query_string:query_string语法的更简单,更健壮的版本,适合直接向用户公开。

QueryBuilder qb = simpleQueryStringQuery("+kimchy -elasticsearch");//value

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

012-elasticsearch5.4.3【五】-搜索API【一】搜索匹配所有matchAllQuery、全文查询[matchQuery、multiMatchQuery、commonTermsQuery、queryStringQuery、simpleQueryStringQuery]的更多相关文章

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

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

  2. ElasticSearch(十五) _search api 分页搜索及deep paging性能问题

    1.分页搜索 语法: size,from GET /_search?size=10 GET /_search?size=10&from=0 GET /_search?size=10&f ...

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

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

  4. Golang 谷歌搜索api 实现搜索引擎(前端 bootstrap + jquery)

    Golang 谷歌搜索api 实现搜索引擎(前端 bootstrap + jquery) 体验 冒号搜索 1. 获取谷歌搜索api 谷歌搜索api教程 2. 后台调用 程序入口 main.go // ...

  5. ES系列五、ES6.3常用api之搜索类api

    1.搜索api 1.1.routing:路由 执行搜索时,它将广播到所有索引/索引分片(副本之间的循环).可以通过提供routing参数来控制将搜索哪些分片.例如,在索引book时,路由值可以是nam ...

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

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

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

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

  8. jsonp跨越请求百度搜索api 实现下拉列表提示

    题目来源: 最近在做百度IFE前端技术学院的题,然后有一题就是模拟百度搜索智能提示.题目是开源的,稍后给出地址. 因为博主没学过后端啊,欲哭无泪,所以不能实现后端模糊搜索,那如果前端ajax纯粹请求一 ...

  9. 百度音乐搜索API介绍

    百度音乐搜索API的请求地址如下: [html] view plaincopy http://box.zhangmen.baidu.com/x?op=12&count=1&title= ...

随机推荐

  1. linux中文件权限格式与chmod命令以及用户和用户组的管理

    简单了解一下linux中的文件权限格式与chmod命令 chmod命令:改变文件或者目录的权限 格式:chmod [参数] [<权限范围><符号><权限代码>] - ...

  2. 高版本chrome不再支持window.showmodaldialog 的临时替换方案【用window.open】

    接管别人的项目,因开发时用了showmodaldialog 导致最近很多用户chrome升级到最新之后 就无法弹窗了.原因是新版chrome[37+]不再支持showmodaldialog. show ...

  3. layoutSubviews何时调用的问题(原文:http://www.cnblogs.com/pengyingh/articles/2417211.html)

    今天跟旺才兄学习了一下UIView的setNeedsDisplay和setNeedsLayout方法.首先两个方法都是异步执行的.而setNeedsDisplay会调用自动调用drawRect方法,这 ...

  4. 17.Linux-CentOS系统OpenStack-Keystone同步数据库时报错

    问题描述:在同步Keystone数据库时报以下错误[root@controller ~]# su -s /bin/sh -c "keystone-manage db_sync" k ...

  5. Linux--用户与用户组--03

    用户管理: 1.useradd 创建用户 -c 指定用户描述 -d 指定家目录 -g 指定主组 -G 指定附加组 附加组可以有多个 -s 指定shell程序 特殊的/sbin/nologin--> ...

  6. mysql—查询数据库表的数量

    1.查看数据库表数量SELECT count(TABLE_NAME) FROM information_schema.TABLES WHERE TABLE_SCHEMA='dbname';  2.获取 ...

  7. Android PdfViewer案例使用

    今天按项目要求找了一个android的PDF控件,各种操作效果都非常好,在这里和大家分享一下. com.joanzapata.pdfview:android-pdfview  该PDF控件加载大存储的 ...

  8. 花式赋值、列表、字典、解压缩、input()、格式化学习笔记

    目录 花式赋值 列表(list) 字典(dict) 解压缩 input()与用户交互 格式化的三种方式 f_String格式化(important) %s.%d占位符 format 格式化(不常用) ...

  9. 【leetcode】848. Shifting Letters

    题目如下: 解题思路:本题首先要很快速的计算出任意一个字符shift后会变成哪个字符,其实也很简单,让shift = shift % 26,接下来再做计算.第二部是求出每个字符要shift的次数.可以 ...

  10. Vue 基于node npm & vue-cli & element UI创建vue单页应用

    基于node npm & vue-cli & element UI创建vue单页应用 开发环境   Win 10   node-v10.15.3-x64.msi 下载地址: https ...