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

Aggregating your results

Next, when I search for Lenovo, I would like to see different product types associated with it. This is more like making a report out of the results, but then, as this makes your data more explorable and easy to understand, it's safe to see this as enhancing search capabilities.

Hence, whenever I search for something, I want to see the following reports on my query results or rather, an aggregate of my results in the following information:

  • Different types of productType
  • The number of products in various predefined price ranges
  • The number of documents per year based on manufacturing dates

For this, we need to build different aggregations to capture these reports.

Note

It's very important to understand that the score of aggregation is the query. This means that the aggregations would only be done on those documents that match the query.

The format in which we should provide aggregations is as follows:

{
    "query" : { ….},
    "aggregations" : { 
        "aggregationNameA" : { 
            "aggregationType" : { <Aggregation type specific information> },
        }
    },
    "aggregationNameB" : { 
        "aggregationType" : { <Aggregation type specific information> },
        }
    },
    { …. }
}

Once we fire a search request with this JSON, we can retrieve our results in the following format:

{
    "took" : 21 ,
     ….
}
Note

We identify the results of the inpidual aggregation request using the aggregation name we gave in the query.

Terms aggregation

Terms aggregation is usually done on string field types, which means that this is very handy to retrieve statistics on terms. Like in our case, the number of different unique values for the productType and the number of documents in which each terms are occurring.

主站蜘蛛池模板: 长乐市| 牡丹江市| 新巴尔虎左旗| 陵川县| 同江市| 潞城市| 喀喇沁旗| 当涂县| 高台县| 琼海市| 莱州市| 宜都市| 青川县| 平凉市| 曲周县| 夏邑县| 墨江| 新乐市| 海宁市| 阆中市| 榆社县| 太和县| 铜陵市| 施秉县| 林芝县| 卓资县| 蛟河市| 长治市| 白玉县| 枝江市| 永安市| 会泽县| 云梦县| 惠水县| 平陆县| 城口县| 遂川县| 汉川市| 奈曼旗| 株洲县| 罗源县|