【问题标题】:Incorrect unique values from field in elasticsearchelasticsearch中字段的唯一值不正确
【发布时间】:2017-05-22 13:37:38
【问题描述】:

我正在尝试从弹性搜索中的字段中获取唯一值。为了做到这一点,我接下来做了:

PUT tv-programs/_mapping/text?update_all_types
{
  "properties": {
    "channelName": { 
      "type":     "text",
      "fielddata": true
    }
  }
}

之后我执行了这个:

GET _search
{
"size": 0,
"aggs" : {
    "channels" : {
        "terms" : { "field" : "channelName" ,
        "size": 1000
        }
    }
}}

看到下一个回复:

...
"buckets": [
        {
          "key": "tv",
          "doc_count": 4582
        },
        {
          "key": "baby",
          "doc_count": 2424
        },
        {
          "key": "24",
          "doc_count": 1547
        },
        {
          "key": "channel",
          "doc_count": 1192
        },..

问题是在原始条目中没有 4 个不同的记录。正确的输出应该是下一个:

"buckets": [
        {
          "key": "baby tv",
          "doc_count": 4582
        }
        {
          "key": "channel 24",
          "doc_count": 1547
        },..

为什么会这样?我怎样才能看到正确的输出?

【问题讨论】:

    标签: elasticsearch elasticsearch-5


    【解决方案1】:

    我找到了解决方案。 我刚刚在字段名称后添加了.keyword

    GET _search
    {
    "size": 0,
    "aggs" : {
        "channels" : {
            "terms" : { "field" : "channelName.keyword" ,
            "size": 1000
            }
        }
    }}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-05-03
      • 2019-02-26
      • 1970-01-01
      • 2012-01-02
      • 2013-01-06
      • 1970-01-01
      • 1970-01-01
      • 2020-08-08
      相关资源
      最近更新 更多