一、概述

  查询所使用的 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. 网络爬虫之JSOUP

    JSOUP中文文档:http://www.open-open.com/jsoup/推荐博客:http://www.cnblogs.com/jycboy/p/jsoupdoc.html 从一个URL加载 ...

  2. python 快速排序实现

    # -*- coding: utf-8 -*- def quicksort(array): # 基线条件:为空或只包含一个元素的数组是"有序"的 if len(array) < ...

  3. 出现( linker command failed with exit code 1)错误总结(http://blog.csdn.net/hengshujiyi/article/details/21182813)

    这种问题,通常出现在添加第三方库文件或者多人开发时. 这种问题一般是找不到文件而导致的链接错误. 我们可以从如下几个方面着手排查. 1.以如下错误为例,如果是多人开发,你同步完成后发现出现如下的错误. ...

  4. 把excel中的数据导入到Oracle数据库中

    从事工作以来,数据库一直使用oracle,却不知道excel导入oracle,今天看了一篇文章,分享给大家,希望对大家有用. https://jingyan.baidu.com/article/0f5 ...

  5. C# List<Object>值拷贝

    using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Run ...

  6. CentOS7升级gcc

    CentOS7.5升级gcc到8.3.0版本 1.下载源码包 cd /usr/local/src wget http://ftp.tsukuba.wide.ad.jp/software/gcc/rel ...

  7. 安装php-solr扩展

    本人qq群也有许多的技术文档,希望可以为你提供一些帮助(非技术的勿加). QQ群:   281442983 (点击链接加入群:http://jq.qq.com/?_wv=1027&k=29Lo ...

  8. SSM框架整合之单独整合Mybatis

    整合步骤 导入必须jar包 mybatis核心jar包 mybatis依赖jar包 数据库驱动包 建立数据库表 建立实体类 建立Mapper接口 建立sql映射文件 <?xml version= ...

  9. Pool数据池

    sql相关请点我!!! 1.普通的sql语句查询完成之后,就要断开,下次查的时候又要重新开启,这样的话,效率会很低,所以利用pool 数据池来解决这种问题,pool数据池查询完之后,就不用去重新链接数 ...

  10. LeetCode--096--不同的二叉搜索树(python)

    我的思路比较low直接看官方题解吧... class Solution: def numTrees(self, n: int) -> int: G = [0] * (n+1) G[0],G[1] ...