在ElasticSearch中keyword,text类型字段都可以设置ignore_above属性(默认是10) ,表示最大的字段值长度,超出这个长度的字段将不会被索引,但是会存储,ignore_above一般设置为256(筛选该字段,并且去除非分词字段的大小限制),设置为30000可能会出现BulkFailureException
ElasticsearchException[Elasticsearch exception [type=max_bytes_length_exceeded_exception, reason=max_bytes_length_exceeded_exception: bytes can be at most 32766 in length; got 35149]];}]
keyword类型:
PUT /INDEX_NAME/_mapping
{
"properties" : {
"FIELD_NAME" : {
"type" : "keyword",
"ignore_above": 256
}
}
}
text类型:
PUT /INDEX_NAME/_mappings
{
"properties":{
"FIELD_NAME":{
"type":"text",
"fields":{
"keyword":{
"type":"keyword",
"ignore_above":256
}
}
}
}
}
本文探讨了Elasticsearch中keyword和text字段的ignore_above属性设置,重点介绍了如何合理设定以避免MaxBytesLengthExceededException,尤其是在keyword类型的字段中。同时提到了设置过大可能导致的BulkFailureException问题,并给出了实际示例配置和常见错误解决策略。
2338

被折叠的 条评论
为什么被折叠?



