开发者学堂课程【ElasticSearch 最新快速入门教程:wildcardQuery】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/642/detail/10657
wildcardQuery
内容介绍
一、 ES JavaAPI wildcardQuery
二、 案例实操
一、 ES JavaAPI wildcardQuery
*表示匹配多个字符
?表示匹配1个字符
注意:
避免*开始,因为会检索大量内容造成效率缓慢
searchResponse searchResponse=client.prepareSearch(
“
blog2
”
).setTypes(
“
article
”
)
.setQuery(QueryBuilders.wildcardQuery(“content”,“elas*c?”)).get();
SearchHits hits=searchResponse.getHits();
//获取命中次数,查询结果有多少对象
二、 案例实操
(1) wildcardQuery 演示
需求:使用 wildcardQuery,查询索引库之 bigdata 下的 type 之 product 下 name 字段值中包含有 m 的所有索引信息。
@
T
est
public
void
test
W
ildcard
Q
uery(
){
//查询
SearchResponse response=
client.
prepareSearch(INDEX)
.setTypes(TYPE)
.setQuery(QueryBuilders.regexpQuery(name:
“name”,query:“f
*
m?”
))
.
get();
//显示检索到的信息
SearchH
its
hits
=
response
.getHits();
for(
Search
H
its
hit
:hits){
System.out.println(hit.getSourceAsString());
}
运行结果
“C
:\P
rogram
F
iles\
J
ava\jdk1.8.0_131\bin\java.
exe
”
…
前端处理操作,用于进行全局的初始化…
{“author”:“舍我其谁”,“last_version”
:
“3.0.0”,“name”:“
F
lume”
}
后处理操作,用于进行资源的释放…
(1) 例2:
需求:使用 wildcardQuery,查询索引库之 bigdata下的 type 之 product 下 name 字段值中首字母为 s 的所有索引信息。
@Test
public void testWildcardQuery(){
//查询
SearchResponse response=client.prepareSearch(INDEX)
.setTypes(TYPE)
.setQuery(QueryBuilders.regexpQuery(name:“name”,query:“s*”))
.get();
//显示检索到的信息
SearchHits hits = response.getHits();
for(SearchHits hit:hits){
System.out.println(hit.getSourceAsString());
}
运行结果
“C:\Program Files\Java\jdk1.8.0_131\bin\java.exe”…
前端处理操作,用于进行全局的初始化…
{“name”:“storm”,“author”:“睥睨天下”,“version”:“2.4.6”}
{“author”:“杰克逊”,“last_version”:“2.1.0”,“name”:“sqoop”}
{“name”:“
S
park”,“author”:“楚留香”,“last_version”:“2.3.4”}
后处理操作,用于进行资源的释放…
(2) 数据库附图