开发者学堂课程【ElasticSearch 最新快速入门教程:RegexpQuery】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/642/detail/10655
RegexpQuery
内容介绍
一、 ES JavaAPI regexpQuery
二、 案例实操
一、 ES JavaAPI regexpQuery
假设现在你想匹配在 W 地域(Area)的所有邮政编码,那我们怎样来匹配呢?
(1) Regexp匹配
命令行:curl-XGET ‘http://localhost:9200/my_index/address/search -d’
{
“query”:{
“regexp”
:{
“postcode”
:
“
W[0-9].+
”
}
}
}
这个正则表达式规定了词条需要以 W 开头,紧跟着一个0到9的数字,然后是一个或者多个其他字符。
Regexp 所要匹配的字段要以正则式的形式出现。如以上代码中“W[0-9].+”。
(2) 案例
正则表达式查询
R
esponsebuilder.
setQuery
(
QueryBuilders.regexpQuery(field,regexp))
三、 案例实操
(1) regexpQuery 演示
*案例:查询索引库之 bigdata 下的 type 之 product 下 name 字段值中包含有 oo 的索引信息。(使用 regexpQuery 的形式实现)
@
T
est
public
void
test
R
egexp
Q
uery(
){
//正则表达式
String
regex=
“
.+oo.+
”;
//查询
SearchResponse response=
client.
prepareSearch(INDEX)
.setTypes(TYPE)
.setQuery(QueryBuilders.regexpQuery(name:
“name”,regex
))
.
get();
//显示检索到的信息
Search
H
its
hits
=
response
.getHits();
for(
Search
H
its
hit
:hits){
System.out.println(hit.getSourceAsString());
}
(3) 运行结果
“C
:\P
rogram
F
iles\
J
ava\jdk1.8.0_131\bin\java.
exe
”
…
前端处理操作,用于进行全局的初始化…
{“author”:“杰克逊”,“last_version”
:
“2.1.0”,“name”:“sqoop”
}
{“author”:“施瓦辛格”,“name”
:
“hadoop”,“version”:“3.1.2”
}
后处理操作,用于进行资源的释放…
(4) 数据库附图