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

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
      } ]
    }
  }
}
主站蜘蛛池模板: 廉江市| 白水县| 米泉市| 南宫市| 南皮县| 东港市| 临猗县| 新源县| 湟源县| 云南省| 乐业县| 舞阳县| 佳木斯市| 东宁县| 前郭尔| 西昌市| 嘉祥县| 句容市| 贵州省| 宜章县| 伊春市| 怀宁县| 临朐县| 驻马店市| 普洱| 惠州市| 昌宁县| 延庆县| 汉川市| 南江县| 吴忠市| 洪泽县| 兴和县| 浑源县| 都兰县| 雷波县| 定南县| 静安区| 临泽县| 呼图壁县| 高尔夫|