官术网_书友最值得收藏!

Implementation of filters in Elasticsearch

This section sheds some light on the implementation of filters in Elasticsearch. All filters are not the same. We will see how each one differs from another and how we can implement these with Elasticsearch. First, let's see all the three implementation types of filters in Elasticsearch.

We have already showed you the most basic type of usage of a filter in the previous examples. You would have noticed the term constant score or filtered every time we used a filter. These are queries and they wrap the filter inside and apply it against the normal query's result. This is the first type of filter implementation of Elasticsearch.

Note that the filtered/constant score implementation of filters will affect both the results of the query and aggregations; some of the examples are shown as follows:

curl -XPOST 'http://localhost:9200/products/_search?pretty' -d '{
   "aggregations": {
     "department": {
       "terms": {
         "field": "color"
       }
     }
   },
   "query": {
     "filtered": {
       "query": {
         "match": {
           "description": "dell"
         }
       },
       "filter": {
         "term": {
           "productType": "Laptop"
         }
       }
     }
   }
 }'

The output of the preceding query is as follows:

{
  "took" : 250,
  "timed_out" : false,
  "_shards" : {
    "total" : 1,
    "successful" : 1,
    "failed" : 0
  },
  "hits" : {
    "total" : 2,
    "max_score" : 0.48288077,
    "hits" : [ {
      "_index" : "products",
      "_type" : "product",
      "_id" : "-B0YVCS6R1iXOqhHNKRcJQ",
      "_score" : 0.48288077,
      "_source":{    "name" : "Dell Vostro 3546 Laptop", "description" : "Dell Vostro 3546 Laptop with Laptop Bag", "dateOfManufactoring" : "2013-05-06",    "prize" : 25688, "totalBuy" : 20 ,    "color" : "Yellow",    "productType" : "Laptop",    "imageURL" : "www.imageDB.com/urlToDellVostroLaptop.jpg"}
    }, {
      "_index" : "products",
      "_type" : "product",
      "_id" : "J-4lWEDDQPaondNpQtbFLQ",
      "_score" : 0.40240064,
      "_source":{    "name" : "Dell Inspiron Laptop", "description" : "Dell Inspiron 3541 Black 15.6 inch Laptop without Laptop Bag",    "dateOfManufactoring" : "2012-04-01",    "prize" : 19990,    "totalBuy" : 334 , "color" : "Grey",    "productType" : "Laptop",    "imageURL" : "www.imageDB.com/urlToDellInspironLaptop.jpg"}
    } ]
  },
  "aggregations" : {
    "department" : {
      "buckets" : [ {
        "key" : "Grey",
        "doc_count" : 1
      }, {
        "key" : "Yellow",
        "doc_count" : 1
      } ]
    }
  }
}
主站蜘蛛池模板: 炎陵县| 马龙县| 精河县| 青铜峡市| 探索| 沁阳市| 大丰市| 万全县| 和平县| 大港区| 延边| 吕梁市| 六安市| 凤山县| 九龙坡区| 龙井市| 绥宁县| 安顺市| 鹤庆县| 台东县| 宜兰市| 株洲市| 汕尾市| 海盐县| 兴城市| 肇东市| 和林格尔县| 攀枝花市| 丹棱县| 莆田市| 天峻县| 巴塘县| 奉化市| 台中市| 东阿县| 左云县| 新田县| 永清县| 翁源县| 额济纳旗| 石泉县|