Elasticsearch复杂条件查询
select * from where (class2=“空气质量” and type3=“国家”) or (class2=“水质量”
and class3=国家)
PUT /_bulk
{"index":{"_index":"test_join","_id":1}}
{"context":"测试数据[空气质量-国家]","class1":"监测","class2":"空气质量","class3":"国家"}
{"index":{"_index":"test_join","_id":2}}
{"context":"测试数据[空气质量-地方]","class1":"监测","class2":"空气质量","class3":"地方"}
{"index":{"_index":"test_join","_id":3}}
{"context":"测试数据[空气质量-其它]","class1":"监测","class2":"空气质量","class3":"其它"}
{"index":{"_index":"test_join","_id":4}}
{"context":"测试数据[水质量-国家]","class1":"监测","class2":"水质量","class3":"国家"}
{"index":{"_index":"test_join","_id":5}}
{"context":"测试数据[水质量-地方]","class1":"监测","class2":"水质量","class3":"地方"}
{"index":{"_index":"test_join","_id":6}}
{"context":"测试数据[水质量-区县]","class1":"监测","class2":"水质量","class3":"区县"}
{"index":{"_index":"test_join","_id":7}}
{"context":"测试数据[空气质量-国家]","class1":"监测","class2":"空气质量","class3":"国家"}
{"index":{"_index":"test_join","_id":8}}
{"context":"测试数据[空气质量-地方]","class1":"监测","class2":"空气质量","class3":"地方"}
{"index":{"_index":"test_join","_id":9}}
{"context":"测试数据[空气质量-地方]","class1":"监测","class2":"水质量","class3":"地方"}
{"index":{"_index":"test_join","_id":10}}
{"context":"测试数据[空气质量-地方]","class1":"监测","class2":"水质量","class3":"区县"}
GET test_join/_search
POST test_join/_search
{
"size": 10,
"query": {
"bool": {
"should": [
{
"bool": {
"must": [
{
"term": {
"class2.keyword": {
"value": "空气质量"
}
}
},
{
"term": {
"class3.keyword": {
"value": "国家"
}
}
}
]
}
},
{
"bool": {
"must": [
{
"term": {
"class2.keyword": {
"value": "水质量"
}
}
},
{
"terms": {
"class3.keyword": [
"国家",
"区县"
]
}
}
]
}
}
]
}
}
}
POST test_join/_search
{
"size": 1,
"query": {"match_all": {}},
"aggs": {
"agg1": {
"terms": {
"field": "class1.keyword",
"size": 10
}
,"aggs": {
"agg2": {
"terms": {
"field": "class2.keyword",
"size": 10
},"aggs": {
"agg3": {
"terms": {
"field": "class3.keyword",
"size": 10
}
}
}
}
}
}
}
}