elasticsearch 多次聚合

发布时间:2020-07-08 11:32:03 作者:大海之中
来源:网络 阅读:472

curl -XGET 'http://localhost:9200/alias-*/*/_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"

      }

    }

  }

}'


推荐阅读:
  1. elasticsearch的doc_values
  2. Elasticsearch Aggregation 笔记

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

elasticsearch 多次聚合 多次 st

上一篇:php替换字符串中的字符串的方法

下一篇:SQL Server中如何存储过程邮件以格式形式发送

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》