【问题标题】:In Elasticsearch, why do I get an error message "Fielddata is disabled on text fields by default"在 Elasticsearch 中,为什么我会收到错误消息“默认情况下在文本字段上禁用 Fielddata”
【发布时间】:2019-03-02 04:31:28
【问题描述】:

我正在尝试编写一个查询来返回唯一的城市。我的代码是:

GET /files/_doc/_search
{
  "size":"0",
  "aggs" : {
    "uniq_cities" : {
      "terms" : { "field" : "cities" }

    }
  }
}

我有如下错误信息:

默认情况下,文本字段上的字段数据是禁用的。设置 fielddata=true on [城市] 以通过以下方式将字段数据加载到内存中 反转倒排索引。请注意,这可以使用 显着的记忆。或者使用关键字字段。

当我跑步时

GET /files/_doc/_mapping

我明白了:

"cities" : {
  "type" : "text",
  "fields" : {
    "keyword" : {
      "type" : "keyword",
      "ignore_above" : 256
    }
  }
}

根据以上,我好像已经有了关键字字段。如何修复错误消息?

【问题讨论】:

    标签: elasticsearch


    【解决方案1】:

    错误显示“默认情况下在文本字段上禁用字段数据”,因为您正尝试在文本字段 cities 上应用聚合。它还有一个子字段keyword,其数据类型为keyword。因此,在cities.keyword 字段上应用聚合如下:

    GET /files/_doc/_search
    {
      "size":"0",
      "aggs" : {
        "uniq_cities" : {
          "terms" : { "field" : "cities.keyword" }
    
        }
      }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-19
      • 1970-01-01
      • 2018-04-02
      • 2023-03-30
      • 2022-12-06
      • 2012-06-22
      相关资源
      最近更新 更多