1. 介绍
Bool Query包括四种子句,must, should, must_not, filter。
格式:
{
"bool":{
"must":[],
"should":[],
"must_not":[],
"filter":[]
}
}
must:必须满足的条件 (and)
should:可以满足也可以不满足的条件 (or)
must_not:不需要满足的条件 (not)
filter: 过滤,不计算分数,缓存查询
2. 测试
查询存在timestamp字段的文档
POST schools/room/_search
{
"query": {
"bool": {
"must": [
{
"exists": {
"field":"timestamp"
}
}
]
}
}
}
过滤查询
POST schools/classes/_search
{
"query": {
"bool": {
"filter": [
{
"term":{
"class_id": 1
}
}
]
}
}
}
条件查询 and
只有条件全部符合才可以
POST schools/classes/_search
{
"query":{
"bool":{
"must": [
{
"term":{
"classes_id": 4
}
},
{
"match": {
"name": "班级4"
}
}
]
}
}
}
条件查询 or
只要符合一个条件就可以
POST schools/classes/_search
{
"query":{
"bool":{
"should": [
{
"term":{
"classes_id": 4
}
},
{
"match": {
"name": "班级4"
}
}
]
}
}
}
项目推荐
IT-CLOUD :IT服务管理平台,集成基础服务,中间件服务,监控告警服务等。
IT-CLOUD-ACTIVITI6 :Activiti教程源码。博文在本CSDN Activiti系列中。
IT-CLOUD-ELASTICSEARCH :elasticsearch教程源码。博文在本CSDN elasticsearch系列中。开源项目,持续更新中,喜欢请 Star~