wildcardQuery | 学习笔记

简介: 快速学习 wildcardQuery

开发者学堂课程【ElasticSearch 入门精讲wildcardQuery学习笔记,与课程紧密连接,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/631/detail/10009


wildcardQuery


内容介绍:

一、前言

二、演示


一、前言

* 匹配多个字符,? 匹配1个字符

注意:

避免 * 开始,会检索大量内容造成效率缓慢SearchResponsesearchResponse= client.prepareSearch("blog2").setTyp

es("article")

.setQuery(QueryBuilders.wildcardQuery("content", "elas*c?")).

get();

SearchHits hits = searchResponse.getHits();//获取命中次数,查询结果有多少对象


二、演示

在 TestES.java 中输入

/**

*wildcardQuery 演示

*需求:

使用 wildcardQuery,查询出 name 中包含有 m 的所有索引信息

*/

@Test

public void testWildcardQuery(){

//查询

SearchResponse response = client.prepareSearch(INDEX)

.setTypes(TYPE).setQuery(QueryBuilders.wildcardQuery(name:"name",query:"F*m?"))

.get();

//显示检索到的信息

SearchHits hits = response.getHits();

for (SearchHit hit : hits) {

System.out.println(hit.getSourceAsString());

}

}

运行结果显示

查询不到

修改 .setQuery(QueryBuilders.wildcardQuery(name:"name",query:"f*m?"))

运行结果显示

{“author”: “舍我其谁”, “last_version”: “3.0.0”, “name”: “Flume”}

因为通配符默认匹配小写字符,大写 F 匹配不到,要写为小写就能匹配到

如果想查询以 s 开头的呢?

image.png

注释掉代码//.setQuery(QueryBuilders.wildcardQuery(name:"name",query:"f*m?"))

输入

.setQuery(QueryBuilders.wildcardQuery(name:"name",query:"s*"))

运行结果显示

{“name”: “storm”, “author”: “睥睨天下”,“version”: “2.4.6”}

{“author”: “杰克逊”, “last_version”: “2.1.0”, “name”: “sqoop”}

{“name”: “Spark”, “author”: “楚留香”, “last_version”: “2.3.4”}

相关文章
|
存储 C语言 C++
C++学习笔记(day1)
C++学习笔记(day1)
|
机器学习/深度学习 人工智能 调度
学习笔记6
人工智能课程
57 0
|
机器学习/深度学习 人工智能 自然语言处理
学习笔记
人工智能课程
67 0
|
算法 计算机视觉
OpenCV学习笔记--SIFT,SUFT
图像处理两大特征提取算法
111 0
|
数据采集 SQL 消息中间件
第三阶段总结|学习笔记
快速学习第三阶段总结
115 0
第三阶段总结|学习笔记
|
NoSQL MongoDB 开发者
故障测试_1|学习笔记
快速学习故障测试_1
104 0
故障测试_1|学习笔记
|
开发工具
超详细的vimtutor学习笔记(上)
第一讲 编辑 1.1 移动光标 使用 h、j、k、l 键可以使光标实现左、下、上、右的移动。 也可以使用 ↑ ↓ ← → 进行上下左右的移动。
103 0
|
机器学习/深度学习 算法 开发者
神经元模型| 学习笔记
快速学习神经元模型。
254 0
神经元模型| 学习笔记
|
开发者 索引
MatchAllQuery|学习笔记
快速学习 MatchAllQuery。
85 0
|
分布式计算 Hadoop Apache
regexpQuery | 学习笔记
快速学习 regexpQuery
155 0