elasticsearch报Fielddata is disabled on text fields by default

我刚玩elk没几天,今天启动kibana之后执行查询看见elasticsearch报了一个错误

Caused by: java.lang.IllegalArgumentException: Fielddata is disabled on text fields by default. Set fielddata=true on [type] in order to load fielddata in memory by uninverting the inverted index. Not

e that this can however use significant memory. Alternatively use a keyword field instead.

刚发现这个错误的时候有点迷茫,这什么错误,怎么会报这个错误,怎么解决?

 

经过漫长的时间终于找到了答案,长话短说就是

Elasticsearch 5.x版本以后,对排序和聚合等操作,用单独的数据结构(fielddata)缓存到内存里了默认是不开启的需要单独开启

更详细的解释参考elasticsearch官方文档  fielddata

解决方案:

PUT you_index/_mapping/
{
  "properties": {
    "you_field": {
      "type": "text",
      "fielddata": true
    }
  }
}

执行完Kibana控制台显示下面信息则成功

 

posted on 2019-07-10 14:10  张张张张张先生  阅读(631)  评论(0编辑  收藏  举报

导航