在 elasticsearch 7.8.1 中尝试索引时,出现 "field" is too large, must be <= 32766 有解决方案吗?
When trying to index in elasticsearch 7.8.1, an error occurs saying "field" is too large, must be <= 32766 Is there a solution?
尝试在 elasticsearch 7.8.1 中建立索引时,出现错误“testField”太大,必须 <= 32766 有解决方案吗?
字段信息
“测试场”:{
“类型”:“关键字”,
“指数”:假
}
这是一个 known issue,目前尚不清楚解决它的最佳方法。 Lucene 强制执行最大期限长度为 32766,超过该长度文档将被拒绝。
在解决此问题之前,您可以选择两个直接选项:
一个。使用 script
ingest processor 将值截断为最多 32766 字节。
PUT _ingest/pipeline/truncate-pipeline
{
"description": "truncate",
"processors": [
{
"script": {
"source": """
ctx.testField = ctx.testField.substring(0, 32766);
"""
}
}
]
}
PUT my-index/_doc/123?pipeline=truncate-pipeline
{ "testField": "hgvuvhv....sjdhbcsdc" }
乙。使用具有适当分析器的 text
字段,该分析器将 truncate
该值,但您将失去对该字段进行聚合和排序的能力。
如果您想将字段保留为 keyword
,我会选择选项 A
尝试在 elasticsearch 7.8.1 中建立索引时,出现错误“testField”太大,必须 <= 32766 有解决方案吗?
字段信息
“测试场”:{ “类型”:“关键字”, “指数”:假 }
这是一个 known issue,目前尚不清楚解决它的最佳方法。 Lucene 强制执行最大期限长度为 32766,超过该长度文档将被拒绝。
在解决此问题之前,您可以选择两个直接选项:
一个。使用 script
ingest processor 将值截断为最多 32766 字节。
PUT _ingest/pipeline/truncate-pipeline
{
"description": "truncate",
"processors": [
{
"script": {
"source": """
ctx.testField = ctx.testField.substring(0, 32766);
"""
}
}
]
}
PUT my-index/_doc/123?pipeline=truncate-pipeline
{ "testField": "hgvuvhv....sjdhbcsdc" }
乙。使用具有适当分析器的 text
字段,该分析器将 truncate
该值,但您将失去对该字段进行聚合和排序的能力。
如果您想将字段保留为 keyword
,我会选择选项 A