嵌套查询查的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:规定了分片中计算返回时的筛选参考: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
