In previous posts Boolean compound queries, Full Text Query, Query term and Source filtering, we performed search operation in query context and retrieved documents using "query" keyword. Elasticsearch also provides search capability in "filter" context.
Filter with boolean compound queries: Below query filter documents based on age and only allow document in response with age range <30 to 35>.
Using filters along with search terms : Below query uses filter within query context and filters documents with gender= female and age greater than 45. Response contains all records with gender female and age > 45.
=======*****======
Filter context search operation
When query is run in filter context there is no relevance of document score. Each document in response has score of 1.0 and filter context queries responds with Yes(given document included) or No (given document excluded) from response.Filter with boolean compound queries: Below query filter documents based on age and only allow document in response with age range <30 to 35>.
➜ Desktop curl -XGET 'localhost:9200/customers/_search?pretty' -d' { "query": { "bool": { "must": { "match_all": {} }, "filter": { "range": { "age": { "gte": 30, "lte": 35 } } } } }, "size": 2, "_source" :["nam*", "age"] } ' -H 'Content-Type: application/json' { "took" : 3, "timed_out" : false, "_shards" : { "total" : 5, "successful" : 5, "skipped" : 0, "failed" : 0 }, "hits" : { "total" : 97, "max_score" : 1.0, "hits" : [ { "_index" : "customers", "_type" : "vendors", "_id" : "7n_g6mABB3_D7Pc85hFw", "_score" : 1.0, "_source" : { "name" : "Green Boyer", "age" : 32 } }, { "_index" : "customers", "_type" : "vendors", "_id" : "G3_g6mABB3_D7Pc85hJw", "_score" : 1.0, "_source" : { "name" : "Randall Sutton", "age" : 31 } } ] } }
Using filters along with search terms : Below query uses filter within query context and filters documents with gender= female and age greater than 45. Response contains all records with gender female and age > 45.
➜ Desktop curl -XGET 'localhost:9200/customers/_search?pretty' -d' { "query": { "bool": { "must": { "match": { "state": "mississippi" } }, "filter": [ { "term": { "gender": "female" }}, { "range": { "age": { "gte": "45" }}} ] } }, "size": 2, "_source" :["nam*", "age", "gend*"] } ' -H 'Content-Type: application/json' { "took" : 2, "timed_out" : false, "_shards" : { "total" : 5, "successful" : 5, "skipped" : 0, "failed" : 0 }, "hits" : { "total" : 6, "max_score" : 4.326261, "hits" : [ { "_index" : "customers", "_type" : "vendors", "_id" : "P3_g6mABB3_D7Pc85hJw", "_score" : 4.326261, "_source" : { "gender" : "female", "name" : "Regina Frederick", "age" : 49 } }, { "_index" : "customers", "_type" : "vendors", "_id" : "J3_g6mABB3_D7Pc85hNx", "_score" : 4.326261, "_source" : { "gender" : "female", "name" : "Alfreda Kent", "age" : 75 } } ] } }
Tags:
Elasticsearch
Aivivu đại lý vé máy bay, tham khảo
ReplyDeletevé máy bay đi Mỹ giá rẻ
vé máy bay từ mỹ đi việt nam
lịch bay từ nhật về việt nam hôm nay
các chuyến bay từ đức về việt nam hôm nay
chuyến bay thương mại từ canada về việt nam
mua ve may bay tu han quoc ve viet nam
danh sách khách sạn cách ly đà nẵng
chuyen bay chuyen gia ve viet nam