1.filter并且查询:查询名字为zhangsan年龄在10~20岁之间的人
java代码
BoolFilterBuilder filterBuilder = FilterBuilders.boolFilter()
.must(FilterBuilders.termFilter("name", "zhangsan"));
filterBuilder = filterBuilder.must(FilterBuilders.rangeFilter("age")
.gte(10)
.lte(30));
TransportClient esClient = esDao.getEsClient();
SearchRequestBuilder queryRequest = esClient.prepareSearch("index_user")
.setTypes("201908")
.setQuery(QueryBuilders.filteredQuery(null, filterBuilder));
对等dsl语句
{
"size" : 1,
"query" : {
"filtered" : {
"filter" : {
"bool" : {
"must" : [ {
"term" : {
"name" : "zhangsan"
}
}, {
"range" : {
"age" : {
"from" : 10,
"to" : 20,
"include_lower" : true,
"include_upper" : true
}
}
} ]
}
}
}
}
}
2.filter或查询:查询名字为zhangsan年龄在10~20或是50~60岁之间的人
BoolFilterBuilder filterBuilder = FilterBuilders.boolFilter()
.must(FilterBuilders.termFilter("name", "zhangsan"));
filterBuilder = filterBuilder
.should(FilterBuilders.rangeFilter("age")
.gte(10)
.lte(20))
.should(FilterBuilders.rangeFilter("age")
.gte(50)
.lte(60));
TransportClient esClient = esDao.getEsClient();
SearchRequestBuilder queryRequest = esClient.prepareSearch("user_index")
.setTypes("201908")
.setQuery(QueryBuilders.filteredQuery(null, filterBuilder));
对等dsl语句
{
"bool" : {
"must" : {
"term" : {
"name" : "zhangsan"
}
},
"should" : [ {
"range" : {
"st_updatetime_stamp" : {
"from" : 10,
"to" : 20,
"include_lower" : true,
"include_upper" : true
}
}
}, {
"range" : {
"st_updatetime_stamp" : {
"from" : 50,
"to" : 60,
"include_lower" : true,
"include_upper" : true
}
}
} ]
}
}
2639

被折叠的 条评论
为什么被折叠?



