011 filter context & query context

#原地址:https://github.com/geektime-geekbang/geektime-ELK/tree/master/part-2/4.4-Query%26Filtering%E5%AE%9E%E7%8E%B0%E5%A4%9A%E5%AD%97%E7%AC%A6%E4%B8%B2%E5%A4%9A%E5%AD%97%E6%AE%B5%E6%9F%A5%E8%AF%A2

#query context: must should

#filter context: must_not filter

#修改嵌套bool查詢,修改權重,直接修改boost以及boost查詢實現權重提升

POST /products/_bulk

{ "index": { "_id": 1 }}

{ "price" : 10,"avaliable":true,"date":"2018-01-01", "productID" : "XHDK-A-1293-#fJ3" }

{ "index": { "_id": 2 }}

{ "price" : 20,"avaliable":true,"date":"2019-01-01", "productID" : "KDKE-B-9947-#kL5" }

{ "index": { "_id": 3 }}

{ "price" : 30,"avaliable":true, "productID" : "JODL-X-1937-#pV7" }

{ "index": { "_id": 4 }}

{ "price" : 30,"avaliable":false, "productID" : "QQPX-R-3956-#aD8" }

#基本語法

POST /products/_search

{

? "query": {

? ? "bool" : {

? ? ? "must" : {

? ? ? ? "term" : { "price" : "30" }

? ? ? },

? ? ? "filter": {

? ? ? ? "term" : { "avaliable" : "true" }

? ? ? },

? ? ? "must_not" : {

? ? ? ? "range" : {

? ? ? ? ? "price" : { "lte" : 10 }

? ? ? ? }

? ? ? },

? ? ? "should" : [

? ? ? ? { "term" : { "productID.keyword" : "JODL-X-1937-#pV7" } },

? ? ? ? { "term" : { "productID.keyword" : "XHDK-A-1293-#fJ3" } }

? ? ? ],

? ? ? "minimum_should_match" :1

? ? }

? }

}

#改變數據模型,增加字段。解決數組包含而不是精確匹配的問題

POST /newmovies/_bulk

{ "index": { "_id": 1 }}

{ "title" : "Father of the Bridge Part II","year":1995, "genre":"Comedy","genre_count":1 }

{ "index": { "_id": 2 }}

{ "title" : "Dave","year":1993,"genre":["Comedy","Romance"],"genre_count":2 }

#must,有算分

POST /newmovies/_search

{

? "query": {

? ? "bool": {

? ? ? "must": [

? ? ? ? {"term": {"genre.keyword": {"value": "Comedy"}}},

? ? ? ? {"term": {"genre_count": {"value": 1}}}

? ? ? ]

? ? }

? }

}

#Filter。不參與算分,結果的score是0

POST /newmovies/_search

{

? "query": {

? ? "bool": {

? ? ? "filter": [

? ? ? ? {"term": {"genre.keyword": {"value": "Comedy"}}},

? ? ? ? {"term": {"genre_count": {"value": 1}}}

? ? ? ? ]

? ? }

? }

}

#Filtering Context

POST _search

{

? "query": {

? ? "bool" : {

? ? ? "filter": {

? ? ? ? "term" : { "avaliable" : "true" }

? ? ? },

? ? ? "must_not" : {

? ? ? ? "range" : {

? ? ? ? ? "price" : { "lte" : 10 }

? ? ? ? }

? ? ? }

? ? }

? }

}

#Query Context

POST /products/_bulk

{ "index": { "_id": 1 }}

{ "price" : 10,"avaliable":true,"date":"2018-01-01", "productID" : "XHDK-A-1293-#fJ3" }

{ "index": { "_id": 2 }}

{ "price" : 20,"avaliable":true,"date":"2019-01-01", "productID" : "KDKE-B-9947-#kL5" }

{ "index": { "_id": 3 }}

{ "price" : 30,"avaliable":true, "productID" : "JODL-X-1937-#pV7" }

{ "index": { "_id": 4 }}

{ "price" : 30,"avaliable":false, "productID" : "QQPX-R-3956-#aD8" }

POST /products/_search

{

? "query": {

? ? "bool": {

? ? ? "should": [

? ? ? ? {

? ? ? ? ? "term": {

? ? ? ? ? ? "productID.keyword": {

? ? ? ? ? ? ? "value": "JODL-X-1937-#pV7"}}

? ? ? ? },

? ? ? ? {"term": {"avaliable": {"value": true}}

? ? ? ? }

? ? ? ]

? ? }

? }

}

#嵌套,實現了 should not 邏輯

POST /products/_search

{

? "query": {

? ? "bool": {

? ? ? "must": {

? ? ? ? "term": {

? ? ? ? ? "price": "30"

? ? ? ? }

? ? ? },

? ? ? "should": [

? ? ? ? {

? ? ? ? ? "bool": {

? ? ? ? ? ? "must_not": {

? ? ? ? ? ? ? "term": {

? ? ? ? ? ? ? ? "avaliable": "false"

? ? ? ? ? ? ? }

? ? ? ? ? ? }

? ? ? ? ? }

? ? ? ? }

? ? ? ],

? ? ? "minimum_should_match": 1

? ? }

? }

}

#Controll the Precision

POST _search

{

? "query": {

? ? "bool" : {

? ? ? "must" : {

? ? ? ? "term" : { "price" : "30" }

? ? ? },

? ? ? "filter": {

? ? ? ? "term" : { "avaliable" : "true" }

? ? ? },

? ? ? "must_not" : {

? ? ? ? "range" : {

? ? ? ? ? "price" : { "lte" : 10 }

? ? ? ? }

? ? ? },

? ? ? "should" : [

? ? ? ? { "term" : { "productID.keyword" : "JODL-X-1937-#pV7" } },

? ? ? ? { "term" : { "productID.keyword" : "XHDK-A-1293-#fJ3" } }

? ? ? ],

? ? ? "minimum_should_match" :2

? ? }

? }

}

POST /animals/_search

{

? "query": {

? ? "bool": {

? ? ? "should": [

? ? ? ? { "term": { "text": "brown" }},

? ? ? ? { "term": { "text": "red" }},

? ? ? ? { "term": { "text": "quick"? }},

? ? ? ? { "term": { "text": "dog"? }}

? ? ? ]

? ? }

? }

}

POST /animals/_search

{

? "query": {

? ? "bool": {

? ? ? "should": [

? ? ? ? { "term": { "text": "quick" }},

? ? ? ? { "term": { "text": "dog"? }},

? ? ? ? {

? ? ? ? ? "bool":{

? ? ? ? ? ? "should":[

? ? ? ? ? ? ? { "term": { "text": "brown" }},

? ? ? ? ? ? ? ? { "term": { "text": "brown" }},

? ? ? ? ? ? ]

? ? ? ? ? }

? ? ? ? }

? ? ? ]

? ? }

? }

}

DELETE blogs

POST /blogs/_bulk

{ "index": { "_id": 1 }}

{"title":"Apple iPad", "content":"Apple iPad,Apple iPad" }

{ "index": { "_id": 2 }}

{"title":"Apple iPad,Apple iPad", "content":"Apple iPad" }

POST blogs/_search

{

? "query": {

? ? "bool": {

? ? ? "should": [

? ? ? ? {"match": {

? ? ? ? ? "title": {

? ? ? ? ? ? "query": "apple,ipad",

? ? ? ? ? ? "boost": 1.1

? ? ? ? ? }

? ? ? ? }},

? ? ? ? {"match": {

? ? ? ? ? "content": {

? ? ? ? ? ? "query": "apple,ipad",

? ? ? ? ? ? "boost":

? ? ? ? ? }

? ? ? ? }}

? ? ? ]

? ? }

? }

}

DELETE news

POST /news/_bulk

{ "index": { "_id": 1 }}

{ "content":"Apple Mac" }

{ "index": { "_id": 2 }}

{ "content":"Apple iPad" }

{ "index": { "_id": 3 }}

{ "content":"Apple employee like Apple Pie and Apple Juice" }

POST news/_search

{

? "query": {

? ? "bool": {

? ? ? "must": {

? ? ? ? "match":{"content":"apple"}

? ? ? }

? ? }

? }

}

POST news/_search

{

? "query": {

? ? "bool": {

? ? ? "must": {

? ? ? ? "match":{"content":"apple"}

? ? ? },

? ? ? "must_not": {

? ? ? ? "match":{"content":"pie"}

? ? ? }

? ? }

? }

}

POST news/_search

{

? "query": {

? ? "boosting": {

? ? ? "positive": {

? ? ? ? "match": {

? ? ? ? ? "content": "apple"

? ? ? ? }

? ? ? },

? ? ? "negative": {

? ? ? ? "match": {

? ? ? ? ? "content": "pie"

? ? ? ? }

? ? ? },

? ? ? "negative_boost": 0.5

? ? }

? }

}

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容