nested嵌套查询和aggregations

    技术2022-08-05  91

    嵌套查询查的category,secondCategory必须是[]这样的数据才可以,如下图classify是不可以的 GET cms_5/_search {   "query": {                         "nested": {                             "query": {                                 "match": {                                     "category.id": {                                         "query": "578"                                     }                                 }                             },                             "path": "category"                         }                     } }

    聚合查询:

    聚合查询类似于sql的group by语句,name指定按照哪个字段进行分组,size指定查出展示个数,order语句可以对结果进行排序

    min_doc_count与shard_min_doc_count

    聚合的字段可能存在一些频率很低的词条,如果这些词条数目比例很大,那么就会造成很多不必要的计算。 因此可以通过设置min_doc_count和shard_min_doc_count来规定最小的文档数目,只有满足这个参数要求的个数的词条才会被记录返回。

    min_doc_count:规定了最终结果的筛选shard_min_doc_count:规定了分片中计算返回时的筛选

    参考:https://www.cnblogs.com/xing901022/p/4947436.html

    GET cms/_search {   "from":0,   "size":10,   "aggregations": {         "title_group": {             "terms": {               "size": 5,                 "field": "name",                 "min_doc_count": 1,                 "shard_min_doc_count": 0,                 "show_term_doc_count_error": false,                 "order": [{                     "_count": "desc"                 }, {                     "_key": "asc"                 }]             }         }     } }

    聚合速度问题参考:

    2、聚合优化方案探讨 优化方案一:默认深度优先聚合改为广度优先聚合。 "collect_mode" : "breadth_first" 1 depth_first 直接进行子聚合的计算 breadth_first 先计算出当前聚合的结果,针对这个结果在对子聚合进行计算。 优化方案二: 每一层terms aggregation内部加一个 “execution_hint”: “map”。 "execution_hint": "map"

    https://www.cnblogs.com/wangmo/p/9917564.html

    Processed: 0.013, SQL: 9