kibana和vega与嵌套聚合

goqiplq2  于 2021-06-15  发布在  ElasticSearch
关注(0)|答案(0)|浏览(386)

给定kibana中下面的vegajson,如何使其动态化,以便当用户在搜索框中搜索某个内容时,它同时应用于下面的查询和pos过滤器标记。假设用户在搜索框中键入“face*”,那么我希望下面标记为“<----this”的值可以动态更改

{
  "$schema": "https://vega.github.io/schema/vega/v4.3.0.json",
  "autosize": "fit",
  "title": "POS COUNT",
  "data": [
    {
      "name": "data_table",
      "url": {
        "index": "sa_test_index_data",
        "body": {
          "size": 0,
          "query": {
            "nested": {
              "path": "xforms.sentence.tokens",
              "query": {
                "bool": {
                  "should": [
                    {
                      "wildcard": {
                        "xforms.sentence.tokens.value.keyword": "24*" <----- this to change
                      }
                    }
                  ]
                }
              }
            }
          },
          "aggs": {
            "sentence": {
              "nested": {"path": "xforms.sentence.tokens"},
              "aggs": {
                "pos_filter": {
                  "filter": {
                    "wildcard": {"xforms.sentence.tokens.value.keyword": "24*"} <----- this to change
                  },
                  "aggs": {
                    "pos": {
                      "terms": {"field": "xforms.sentence.tokens.tag.keyword"}
                    }
                  }
                }
              }
            }
          }
        }
      },
      "format": {"property": "aggregations.sentence.pos_filter.pos.buckets"},
      "transform": [
        {
          "type": "collect",
          "sort": {"field": ["doc_count"], "order": ["descending"]}
        }
      ]
    },
    {
      "name": "data_table_pie_inner",
      "source": "data_table",
      "transform": [
        {
          "type": "aggregate",
          "groupby": ["key"],
          "fields": ["doc_count"],
          "ops": ["sum"],
          "as": ["ff_sum_count"]
        },
        {
          "type": "pie",
          "field": "ff_sum_count",
          "as": ["ff_inner_startAngle", "ff_inner_endAngle"]
        }
      ]
    }
  ],
  "scales": [
    {
      "name": "scale_color",
      "type": "ordinal",
      "range": {"scheme": "category10"},
      "domain": {"data": "data_table", "field": "key"}
    }
  ],
  "marks": [
    {
      "name": "mark_inner_ring",
      "type": "arc",
      "from": {"data": "data_table_pie_inner"},
      "encode": {
        "enter": {
          "x": {"signal": "width / 2"},
          "y": {"signal": "height / 2"},
          "fill": {"scale": "scale_color", "field": "key"},
          "fillOpacity": {"value": 0.8},
          "stroke": {"value": "white"},
          "startAngle": {"field": "ff_inner_startAngle"},
          "endAngle": {"field": "ff_inner_endAngle"},
          "innerRadius": {"value": 0},
          "outerRadius": {"value": 100},
          "tooltip": {
            "signal": "datum['key'] + ': count ' + datum['ff_sum_count']"
          }
        }
      }
    }
  ],
  "legends": [
    {
      "fill": "scale_color",
      "title": "POS",
      "orient": "right",
      "encode": {
        "symbols": {"enter": {"fillOpacity": {"value": 0.5}}},
        "labels": {"update": {"text": {"field": "value"}}}
      }
    }
  ]
}

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题