开发者学堂课程【ElasticSearch 最新快速入门教程:过滤 filter】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/642/detail/10660
过滤 filter
如何过滤
1、范围过滤
.set PostFilter(FilterBuilders.rangeFilter(“age”).from(1).to(19))
代码:
/**
*带过滤条件的查询
*
*查索引库之 bank 中的 type 之 account 下所有年龄在20~25岁之间的账户信息
*/
@Test
public void testFilter(){
//步骤
//①查询
client.prepareSearch(…indices:“bank”)
.setYypes(“account”)
.setFrom(0)
.setSize(1000)
.setPostFilter(QueryBuilders.rangeQuery(name:“age”).gte(20))
.setPostFilter(QueryBuilders.rangeQuery(name:“age”).gte(25))
.get();
//②分析查询后的结果
SearchHits hits = response.getHits();
System.out.println(“得分\t\t内容”);
System.out.println(“_______________”);
for(SearchHits hits :hits){
System.out.println(hit.getScore()“\t\t” + hit.getScoreAsString());
}
2、查询结果
用到的 API 是.setPostFilter(QueryBuilders.rangeQuery在某个区间内对结果进行过滤