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”}

相关文章
|
存储 消息中间件 弹性计算
尘央大佬带你学| 学习笔记
快速学习尘央大佬带你学。
尘央大佬带你学| 学习笔记
|
存储 缓存 固态存储
Fatcache学习笔记
Fatcache学习笔记
Fatcache学习笔记
|
自然语言处理 算法 开发者
CJKAnalyzer|学习笔记
快速学习 CJKAnalyzer
156 0
CJKAnalyzer|学习笔记
|
人工智能 开发者
一点一世界 | 学习笔记
快速学习一点一世界
一点一世界 | 学习笔记
|
C++ 开发者 Python
|
存储 Java 开发者
BinaryTree|学习笔记
快速学习BinaryTree
BinaryTree|学习笔记
|
机器学习/深度学习 算法 Serverless
总结与回顾| 学习笔记
快速学习总结与回顾。
|
开发者 索引
MatchAllQuery|学习笔记
快速学习 MatchAllQuery。
128 0