Kibana 中的 SQL “Distinct” 等价物是什么?

What is the SQL “Distinct” equivalent in Kibana?

我是 Kibana 和 Elasticsearch 的新手。 我有一个名为 serviceprovidername 的字段名称。我想找出该字段中存在多少个不同的服务提供商名称。我怎样才能做到这一点?

这是我目前尝试过的方法。

search query

GET _search{“ages”: {“distinct_serviceprovidername”:{“terms”:{“field” :”serviceprovidername”}}}}

如果我的原始数据是这样的

 Serviceprovidername 
 _______________________
          X
          Y
          X
          Y
          Y
          Z

我排除的结果是:

    Serviceprovidername 
    _______________________
             X
             Y
             Z

请帮忙

如果您可以在 Kibana > DevTools > Console 上运行,以下 "terms aggregation" 应该可以工作:

GET /_search
{
    "size": 0,
    "aggs" : {
        "distinct_serviceprovidername" : {
            "terms" : { "field" : "serviceprovidername" }
        }
    }
}

查询 returns 一个多桶值源,包括 serviceprovidername 字段的不同值,如下所示:

{
  "took" : 0,
  "timed_out" : false,
  "_shards" : {
    "total" : 3,
    "successful" : 3,
    "skipped" : 0,
    "failed" : 0
  },
  "hits" : {
    "total" : 15601,
    "max_score" : 0.0,
    "hits" : [ ]
  },
  "aggregations" : {
    "distinct_serviceprovidername" : {
      "doc_count_error_upper_bound" : 0,
      "sum_other_doc_count" : 67,
      "buckets" : [
        {
          "key" : "X",
          "doc_count" : 301
        },
        {
          "key" : "Y",
          "doc_count" : 207
        },
        {
          "key" : "Z",
          "doc_count" : 175
        }
      ]
    }
  }
}

编辑:"size": 0 在需要聚合但不需要搜索命中时使用。在这种情况下,获取搜索命中没有任何意义,所以我忽略了它,通过仅返回聚合结果来提高请求效率。

在我的例子中,它与通配符搜索和正则表达式完美配合。

我的数据是这样的Tags:All Docs,Domains,ToAnalyse,Unique

我在标签列上应用了过滤器并获得了唯一计数。

下面是我的查询:

GET test1/_search
{
  "aggs": {
    "7772": {
      "filters": {
        "filters": {
          "Unique": {
            "query_string": {
              "query": "Tags:Unique",
              "analyze_wildcard": true,
              "default_field": "*"
            }
          },
          "ToAnalyse": {
            "query_string": {
              "query": "Tags:To.*",
              "analyze_wildcard": true,
              "default_field": "*"
            }
          },
          "All Docs": {
            "query_string": {
              "query": "Tags:All Docs",
              "analyze_wildcard": true,
              "default_field": "*"
            }
          },
          "Outdated": {
            "query_string": {
              "query": "Tags:Outdated",
              "analyze_wildcard": true,
              "default_field": "*"
            }
          },
          "Domains": {
            "query_string": {
              "query": "Tags:Domains",
              "analyze_wildcard": true,
              "default_field": "*"
            }
          }
        }
      }
    }
  },
  "size": 0,
  "_source": {
    "excludes": []
  }
}

我的输出:

{
  "took" : 12,
  "timed_out" : false,
  "_shards" : {
    "total" : 5,
    "successful" : 5,
    "skipped" : 0,
    "failed" : 0
  },
  "hits" : {
    "total" : 152636,
    "max_score" : 0.0,
    "hits" : [ ]
  },
  "aggregations" : {
    "7772" : {
      "buckets" : {
        "All Docs" : {
          "doc_count" : 152636
        },
        "Domains" : {
          "doc_count" : 43374
        },
        "Outdated" : {
          "doc_count" : 24322
        },
        "ToAnalyse" : {
          "doc_count" : 128260
        },
        "Unique" : {
          "doc_count" : 152636
        }
      }
    }
  }
}

希望这对您有所帮助:)

我没有在 Kibana 中找到“不同”的东西。但是我可以在 x-y 轴上将其绘制为 suggested.Thanks 以获得帮助。