一、概述

  查询所使用的 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. win10系统中photoshop cs6中界面字体太小的解决方法

    win10系统中photoshop cs6中界面字体太小的解决方法 ps页面系统字体特别小,解决方法如下: 右键ps图标—属性—兼容性—勾选替代高dpi缩放行为,缩放执行选为默认,如果不行三个都试试

  2. 使用Tensorflow搭建回归预测模型之二:数据准备与预处理

    前言: 在前一篇中,已经搭建好了Tensorflow环境,本文将介绍如何准备数据与预处理数据. 正文: 在机器学习中,数据是非常关键的一个环节,在模型训练前对数据进行准备也预处理是非常必要的. 一.数 ...

  3. [转载]转一篇Systemverilog的一个牛人总结

    原文地址:转一篇Systemverilog的一个牛人总结作者:dreamylife Systemverilog 数据类型 l       合并数组和非合并数组 1)合并数组: 存储方式是连续的,中间没 ...

  4. CentOS 7 环境下部署 SVN 并实现自动更新(版本库放在Tomcat下)

    1.安装 SVN 1.1先检查是否有安装 svn rpm -qa subversion #没有什么显示就说明没有安装过yum remove subversion #如果有安装就运行删除老版本yum i ...

  5. 10年前文章_respin 下制作iso 文件的脚本说明

    1.prepare_spin.sh 用于在 /var/rpm 下生成  lhs-local 需要的repositery 2.respin.sh 使用revisor 生成 iso 3. post_spi ...

  6. python3-访问限制

    在Class内部,可以有属性和方法,而外部代码可以通过直接调用实例变量的方法来操作数据,这样,就隐藏了内部的复杂逻辑. 但是,从前面Student类的定义来看,外部代码还是可以自由地修改一个实例的na ...

  7. 双层for循环用java中的stream流来实现

    //双重for循环for (int i = 0; i < fusRecomConfigDOList.size(); i++) { for (int j = 0; j < fusRecomC ...

  8. 超级POM

    在一个有POM的文件夹下执行: mvn help:effective-pom 会输出一个超级POM文件,可以就该文件,进行分析.

  9. 【学习笔记】Minkowski和

    这还是个被我咕了N久的玩意 Minkowski和是一个奇怪的玩意 他长这样 $S={a+b \| a \in A , b \in B}$ AB可以是点集也可是向量集(显然) 他可以处理一些奇怪的东西 ...

  10. python 布尔判断并做需要的返回值