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

相关文章
|
数据可视化 开发工具
超详细的vimtutor学习笔记(下)
第一讲 编辑 1.1 移动光标 使用 h、j、k、l 键可以使光标实现左、下、上、右的移动。 也可以使用 ↑ ↓ ← → 进行上下左右的移动。
92 0
|
机器学习/深度学习 算法 数据挖掘
总结与回顾| 学习笔记
快速学习总结与回顾。
总结与回顾| 学习笔记
|
分布式计算 前端开发 Java
wildcardQuery|学习笔记
快速学习 wildcardQuery。
385 0
wildcardQuery|学习笔记
|
自然语言处理 流计算 开发者
termQuery | 学习笔记
快速学习 termQuery
|
JSON 分布式计算 Hadoop
boolQuery | 学习笔记
快速学习 boolQuery
boolQuery | 学习笔记
|
缓存 Dubbo 应用服务中间件
本地存根|学习笔记
快速学习本地存根
本地存根|学习笔记
|
开发者 Python
__name__的使用 | 学习笔记
快速学习__name__的使用
__name__的使用 | 学习笔记
|
SQL 分布式计算 资源调度
StreamSQL|学习笔记
快速学习 StreamSQL
StreamSQL|学习笔记
|
消息中间件 缓存 NoSQL
总结| 学习笔记
快速学习总结。
下一篇
无影云桌面