Bootstrap

Elasticsearch 中 content 字段的值超过了 32766 字节的默认最大长度限制该咋办?

在 Elasticsearch 中,keyword 类型字段的值默认最大长度为 32766 字节。如果 content 字段的值超过了这个限制,可以采用以下几种解决方法:

1. 将字段类型改为 text

text 类型字段对长度没有限制,适合存储大段文本内容,如文章详情、日志等。可以将 content 字段的类型从 keyword 改为 text

PUT my_index/_mapping
{
  "properties": {
    "content": {
      "type": "text"
    }
  }
}

2. 使用 ignore_above 参数(仅适用于部分场景)

如果需要保留 keyword 类型字段,可以通过设置 ignore_above 参数来忽略超过指定长度的内容。例如,设置 ignore_above 为 32766,这样超出长度的部分不会被索引,但字段的其他内容仍然可以被索引。

PUT my_index/_mapping
{
  "properties": {
    
;