#bool查詢
#老版本的filtered查詢已經被bool代替
#用 bool包括 must should must_not filter來完成 ,格式如下:
#bool:{
# "filter":[],
# "must":[],
# "should":[],
# "must_not"[],
#}
#must 數組内的所有查詢都必須滿足
#should 數組内隻需要滿足一個
#must_not 一個都不能滿足
#建立測試資料
POST lagou/testdb/_bulk
{"index":{"_id":1}}
{"salary":10,"title":"python"}
{"index":{"_id":2}}
{"salary":20,"title":"Scrapy"}
{"index":{"_id":3}}
{"salary":30,"title":"Django"}
{"index":{"_id":4}}
{"salary":40,"title":"Elasticsearch"}
#簡單過濾查詢
#最簡單的fiter查詢
#select * from testdb where salary=20
#filter 薪資為20的工作
GET lagou/testdb/_search
{
"query":{
"bool": {
"must":{
"match_all":{}
},
"filter": {
"terms": {
"salary": [20,10]
}
}
}
}
}
#filter裡面也能寫多值查詢
#select * from testdb where title="python"
GET lagou/testdb/_search
{
"query":{
"bool": {
"must":{
"match_all":{}
},
"filter": {
"term": {
"title": "Python"
}
}
}
}
}
#資料在入庫的時候就都已經進行大小寫處理了,是以現在用term查詢的時候是找不到需要的内容的,但是用match的時候就可以了
#檢視分析器的解析結果
GET _analyze
{
"analyzer": "ik_max_word",
"text":"python網絡"
}
#bool過濾查詢,可以組合過濾查詢
# select * from testdb where (salary=20 OR title=Python) AND (salary != 30)
# 查詢薪資等于20k或者工作為python的工作,排除價格為30k的
GET lagou/testdb/_search
{
"query":{
"bool": {
"should":[
{"term": {"salary": 20}},
{"term": {"title": "python"}}
],
"must_not": [
{"term":{"salary":30}},
{"term":{"salary":10}}
]
}
}
} x
#嵌套查詢
#select * from testdb where title="python" or ( title="django" AND salary=30)
GET lagou/testdb/_search
{
"query":{
"bool": {
"should":[
{"term": {"title": "python"}},
{"bool": {
"must": [
{"term": {"title": "django"}},
{"term": {"salary": 30}}
]
}}
]
}
}
}
#過濾空和非空
#建立測試數
#select tags from testdb2 where tags is not NULL
GET lagou/testdb2/_bulk
{"index":{"_id":"1"}}
{"tags":["salary"]}
{"index":{"_id":"2"}}
{"tags":["salary","python"]}
{"index":{"_id":"3"}}
{"other_fields":["some data"]}
{"index":{"_id":"4"}}
{"tags":null}
{"index":{"_id":"5"}}
{"tags":["salary",null]}
#處理null空值的方法
#select tags from testdb2 where tags is not NULL
GET lagou/testdb2/_search
{
"query": {
"bool": {
"must_not": {
"exists": {
"field": "tags"
}
}
}
}
}
轉載于:https://www.cnblogs.com/fengshuihuan/p/7928193.html