文档章节

Elasticsearch学习总结四 elasticSearch基本查询详解

winstone
 winstone
发布于 2017/05/30 20:22
字数 472
阅读 532
收藏 6

一.使用的es版本及介绍

使用的是elasticsearch2.3.3版本,在此只是简单介绍搜索部分的api使用

二. es中基本简单的搜索介绍

1.简单的matchQuery 查询的内容会通过分词,分词后的数据进行检索,只要包含其中一个分词就会被检索出来

   searchRequestBuilder.setQuery(QueryBuilders.matchQuery("fieldD", "bigData is magic")); 

2.matchPhraseQuery 查询的内容通过分词,严格按照分词的出现的顺序进行查询,也就是必须包含所有分词,且出现数据一致

  searchRequestBuilder.setQuery(QueryBuilders.matchPhraseQuery("fieldD", "bigData spark is  magic"));

询的字段是进行分词索引的,如果不是分词索引则不生效, 如果只是查询 bigData magic ,则这种查询是查询不到的,需要完全匹配,如果想要查询到,需要设置slop(2),需要这样查询

searchRequestBuilder.setQuery(QueryBuilders.matchPhraseQuery("fieldD", "bigData spark is magic").slop(2))

3.termQuery 词精确查询,fieldD 分词后包含 bigData的term的文档

   searchRequestBuilder.setQuery(QueryBuilders.termQuery("fieldD", "bigData"));

4.terms Query 多term查询,查询fieldD 包含 bigData spark或storm 中的任何一个或多个的文档

  searchRequestBuilder.setQuery(QueryBuilders.termsQuery("fieldD", "bigData","spark","storm"));

5.rangeQuery 范围查询字段fieldB 大于20并且小于50 包含上下界

 searchRequestBuilder.setQuery(QueryBuilders.rangeQuery("filedB").gt("20").lt("50").includeLower(true).includeUpper(true));

6.prefixQuery 匹配分词前缀 如果字段没分词,就匹配整个字段前缀

searchRequestBuilder.setQuery(QueryBuilders.prefixQuery("fieldD","spark"));

7.wildcard query 通配符查询,支持* 任意字符串;?任意一个字符

searchRequestBuilder.setQuery(QueryBuilders.wildcardQuery("fieldD","spark*"));

8.Fuzzy query 分词模糊查询,通过增加fuzziness 模糊属性,来查询term 如下 能够匹配 fieldD 为 spar park spark前或后加一个字母的term的 文档 fuzziness 的含义是检索的term 前后增加或减少n个单词的匹配查询

searchRequestBuilder.setQuery(QueryBuilders.fuzzyQuery("fieldD","spark").fuzziness(Fuzziness.ONE));

© 著作权归作者所有

winstone
粉丝 38
博文 14
码字总数 17575
作品 0
南京
程序员
私信 提问
spring-data-elasticsearch 基本案例详解(三)

『 风云说:能分享自己职位的知识的领导是个好领导。 』 运行环境:JDK 7 或 8,Maven 3.0+ 技术栈:SpringBoot 1.5+, Spring Data Elasticsearch 1.5+ ,ElasticSearch 2.3.2 本文提纲 一、...

夜黑人模糊灬
2018/05/13
855
1
ES(elasticsearch)搜索引擎

ES(elasticsearch)搜索引擎 0、授人以渔,少走半年弯路! 死磕 Elasticsearch 方法论:普通程序员高效精进的 10 大狠招! 一、Elasitcsearch基础篇 1.1 Elasitcsearch基础认知 1、Elasticse...

Ocean_K
2018/09/11
1K
6
elasticsearch搜索引擎相关资料(更新中)

最近需要用到elasticsearch搜索引擎,所以搜集了很多相关资料,先放在这里(未详细整理) 一、步骤总结:(linux环境下) 1. 安装 (1)下载elasticsearch安装包:http://www.elasticsearch....

核桃人
2018/03/08
0
0
Elasticsearch插件一——-head插件安装详解(Elasticsearch教程08)|MVP讲堂

作者:阿里云MVP 铭毅 往期内容: 死磕 Elasticsearch 方法论:普通程序员高效精进的 10 大狠招! Elasticsearch学习,请先看这一篇!(Elasticsearch教程01) Elasticsearch增、删、改、查操...

辰悠
2018/12/14
0
0
小白都会超详细--ELK日志管理平台搭建教程

目录 一、介绍 二、安装JDK 三、安装Elasticsearch 四、安装Logstash 五、安装Kibana 六、Kibana简单使用 系统环境:CentOS Linux release 7.4.1708 (Core) 当前问题状况 开发人员不能登录线...

渣渣辉
2018/07/15
0
0

没有更多内容

加载失败,请刷新页面

加载更多

只需一步,在Spring Boot中统一Restful API返回值格式与统一处理异常

统一返回值 在前后端分离大行其道的今天,有一个统一的返回值格式不仅能使我们的接口看起来更漂亮,而且还可以使前端可以统一处理很多东西,避免很多问题的产生。 比较通用的返回值格式如下:...

晓月寒丶
昨天
59
0
区块链应用到供应链上的好处和实际案例

区块链可以解决供应链中的很多问题,例如记录以及追踪产品。那么使用区块链应用到各产品供应链上到底有什么好处?猎头悬赏平台解优人才网小编给大家做个简单的分享: 使用区块链的最突出的优...

猎头悬赏平台
昨天
28
0
全世界到底有多少软件开发人员?

埃文斯数据公司(Evans Data Corporation) 2019 最新的统计数据(原文)显示,2018 年全球共有 2300 万软件开发人员,预计到 2019 年底这个数字将达到 2640万,到 2023 年达到 2770万。 而来自...

红薯
昨天
65
0
Go 语言基础—— 通道(channel)

通过通信来共享内存(Java是通过共享内存来通信的) 定义 func service() string {time.Sleep(time.Millisecond * 50)return "Done"}func AsyncService() chan string {retCh := mak......

刘一草
昨天
58
0
Apache Flink 零基础入门(一):基础概念解析

Apache Flink 的定义、架构及原理 Apache Flink 是一个分布式大数据处理引擎,可对有限数据流和无限数据流进行有状态或无状态的计算,能够部署在各种集群环境,对各种规模大小的数据进行快速...

Vincent-Duan
昨天
60
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部