开发者学堂课程【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) 案例
正则表达式查询
Responsebuilder.setQuery(QueryBuilders.regexpQuery(field,regexp))
三、 案例实操
(1) regexpQuery 演示
*案例:查询索引库之 bigdata 下的 type 之 product 下 name 字段值中包含有 oo 的索引信息。(使用 regexpQuery 的形式实现)
@Test
public void testRegexpQuery(){
//正则表达式
String regex=“.+oo.+”;
//查询
SearchResponse response=client.prepareSearch(INDEX)
.setTypes(TYPE)
.setQuery(QueryBuilders.regexpQuery(name:“name”,regex))
.get();
//显示检索到的信息
SearchHits hits = response.getHits();
for(SearchHits hit:hits){
System.out.println(hit.getSourceAsString());
}
(3) 运行结果
“C:\Program Files\Java\jdk1.8.0_131\bin\java.exe”…
前端处理操作,用于进行全局的初始化…
{“author”:“杰克逊”,“last_version”:“2.1.0”,“name”:“sqoop”}
{“author”:“施瓦辛格”,“name”:“hadoop”,“version”:“3.1.2”}
后处理操作,用于进行资源的释放…
(4) 数据库附图
