博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
elasticsearch 多次聚合
阅读量:6412 次
发布时间:2019-06-23

本文共 2250 字,大约阅读时间需要 7 分钟。

curl -XGET 'http://localhost:9200/alias-product/product/_search?pretty' -d '{

"size" : 0,

  "query" : {

    "function_score" : {

      "query" : {

        "filtered" : {

          "filter" : {

            "bool" : {

              "should" : [ {

                "match" : {

                  "_all" : {

                    "query" : "电子",

                    "type" : "boolean",

                    "operator" : "AND"

                  }

                }

              }, {

                "match" : {

                  "company_name" : {

                    "query" : "电子",

                    "type" : "boolean",

                    "operator" : "AND"

                  }

                }

              }, {

                "match" : {

                  "title" : {

                    "query" : "电子",

                    "type" : "boolean",

                    "operator" : "AND"

                  }

                }

              } ],

              "minimum_should_match" : "1"

            }

          }

        }

      },

      "functions" : [ {

        "filter" : {

          "match" : {

            "_all" : {

              "query" : "电子",

              "type" : "boolean",

              "operator" : "AND"

            }

          }

        },

        "weight" : 2.0

      }, {

        "filter" : {

          "match" : {

            "company_name" : {

              "query" : "电子",

              "type" : "boolean",

              "operator" : "AND"

            }

          }

        },

        "weight" : 8.0

      }, {

        "filter" : {

          "match" : {

            "title" : {

              "query" : "电子",

              "type" : "boolean",

              "operator" : "AND"

            }

          }

        },

        "weight" : 4.0

      }, {

        "filter" : {

          "range" : {

            "seling_auction_cnt" : {

              "from" : 0,

              "to" : null,

              "include_lower" : false,

              "include_upper" : true

            }

          }

        },

        "weight" : 1.0

      }, {

        "field_value_factor" : {

          "field" : "company_score",

          "factor" : 1.0E-6

        }

      } ],

      "score_mode" : "sum"

    }

  },

  

  "aggs" : {

     "agg" : {

      "terms" : {

        "field" : "member_id",

        "size" : 0,

        "order" : {

          "top_hit" : "desc"

        }

      },

      "aggregations" : {

        "top_hit" : {

          "max" : {

            "script" : {

              "inline" : "_score"

            }

          }

        }

      }

    },

    "agg1" : {

        "scripted_metric": { 

        "init_script": "_agg[\"prd\"] = []", 

        "map_script": "if(doc[\"cat2_id\"].value) {_agg.prd.add(doc[\"cat2_id\"].value.toString())}", 

        "combine_script": "combined = [:]; for (tmp in _agg.prd) { if(!combined[tmp]) { combined[tmp] = 1 } }; return combined",

        "reduce_script": "reduced = []; for (a in _aggs) { for (entry in a) {  reduced.add(entry.key);  } }; return reduced"

      }

    },

"agg2" : {

        "scripted_metric": { 

        "init_script": "_agg[\"prd\"] = []", 

        "map_script": "if(doc[\"cat2_id\"].value) {_agg.prd.add(doc[\"cat2_id\"].value.toString())}", 

        "combine_script": "combined = [:]; for (tmp in _agg.prd) { if(!combined[tmp]) { combined[tmp] = 1 } }; return combined",

         "reduce_script": "reduced = [:]; for (a in _aggs) {  for (entry in a) { word = entry.key; if (!reduced[word] ) { reduced[word] = entry.value; }  } }; return reduced"

      }

    }

  }

}'

本文转自whk66668888 51CTO博客,原文链接:http://blog.51cto.com/12597095/1908017

转载地址:http://dpkra.baihongyu.com/

你可能感兴趣的文章
NET Core-学习笔记(二)
查看>>
职业生涯上的点点滴滴
查看>>
一起来将vscode变成私人定制笔记本
查看>>
Flutter 云音乐
查看>>
RecyclerView实现多type页面
查看>>
个人的web商城网站
查看>>
debian fcitx
查看>>
排中律与实无穷问题的性质分析
查看>>
08/23 学习总结
查看>>
物理层
查看>>
linux多网卡路由设置
查看>>
八大监听器
查看>>
self.navigationController退出到指定页面,或者一次性pop出n个页面
查看>>
iptables 端口转发以及双向通信
查看>>
备战一线互联网公司Java工程师面试题 (1)
查看>>
jquery图片切换插件jquery.cycle.js参数详解
查看>>
JavaScript push() 方法
查看>>
Map集合
查看>>
JSP基础语法1
查看>>
elasticsearch Java API 之GET API & DELETE API
查看>>