基础架构部文档
基础架构部文件格式标准参考
技术文档
mr_doc 接入ucenter 认证登录
loki日志收集
https证书与ssl/tls 加密
FTP 主动模式和被动模式的区别
Hadoop-windows10安装部署Hadoop2.7.3
JKS和PFX证书文件格式相互转换方法
KVM 基础操作
k8s nginx ingress日志收集到ELK并分析
Django基础
clash http代理 socks代理服务器搭建 配置
Ubuntu 22.04 安装 FFmpeg v7.0
ORM
AI MCP 介绍
Django 模板
ZooKeeper命令行(zkCli)的常用操作
Office正版化项目的个人体验和心得
重置jenkins构建历史
K8S实施方案
k8s的yaml文件语法
Docker的优势与虚拟机的区别
问题处理文档
HR推送数据问题处理报
Nginx从入门到放弃01-nginx基础安装
Nginx从入门到放弃02-Nginx基本命令和新建WEB站点
Nginx从入门到放弃03-Nginx调优
Nginx从入门到放弃04-Nginx的N种特别实用示例
JMeter教程
01-mariadb编译安装
02-mariadb二进制安装
Docker修改默认的存储路径
01-influxdb2时序数据库简介及安装
02-influxdb2时序数据库核心概念
03-influxdb2时序数据库flux查询语言
04-influxdb2--Python客户端influxdb-client
05-Spring boot 集成influxdb2
06-influxdb2其他知识
OA添加waf后相关问题的解决过程
排除java应用cpu使用率过高
exsi迁移文档
视频测试
阿里云产品试题
超融合服务器和传统服务器的区别
Serv-U问题集锦
文件夹共享操作手册
磁盘脱机处理方案
Office内存或磁盘空间不足处理方法
Cmd中ping不是内部或外部命令的解决方法
ELK 搭建文档
限制用户的远程桌面会话数量
Docker快速安装rocketmq、redis、zookeeper
超融合建设方案
git 入门
HR系统写入ES数据报错403
ELK搭建文档
KVM 安装和基础使用文档
helm 安装 rancher
访问共享提示禁用当前用户解决方法
K8S StorageClass搭建
KVM 扩展磁盘
借助sasl构建基于AD用户验证的SVN服务器
fastdfs编译安装并迁移数据
关闭系统保护的必要性
SCF 前置机部署
阿里云OSS学习文档
阿里云学习文档-VPC
(k8s踩坑)namespace无法删除
rancher-helm安装
zookeeper集群安装
批量替换K8s secrets 中某个特定域名的tls证书
kibana 批量创建索引模式
centos7 恢复Yum使用
ACP云计算部分知识点总结
Loki 日志系统搭建文档
自动更新k8s集群中所有名称空间中特定证书
AI分享
(AI)函数调用与MCP调用的区别
安装戴尔DELL Optilex 7040 USB驱动时提示无法定位程序输入点 kernel32\.dll
新华三服务器EXSI 显卡直通
conda
双流本地k8s搭建
通义灵码介绍
ELK高亮显示字段过大的问题
LInux常用工具
Ollama部署本地deepseek
人工智能如何重塑ACG宇宙
网络基础协议
远程桌面忽略本地机的文本缩放设置
ComfyUI :构建可视化 Stable Diffusion 工作流
Clawdbot介绍
Dify:开启AI应用开发的“乐高时代”
Kubernetes 证书过期处理
Openclaw安装
Openclaw介绍
本文档使用「觅思文档专业版」发布
-
+
首页
ELK高亮显示字段过大的问题
## 错误提示 在elk搜索日志的时候,发现以下报错信息: ``` "failures": [ { "shard": 0, "index": "uat-srs-oaext-2025.10.28", "node": "u_9qAHNNT723Y3oKbg5N_g", "reason": { "type": "illegal_argument_exception", "reason": "The length of [content] field of [y-SUKJoB1FMilW5cqxGX] doc of [uat-srs-oaext-2025.10.28] index has exceeded [1000000] - maximum allowed to be analyzed for highlighting. This maximum can be set by changing the [index.highlight.max_analyzed_offset] index level setting. For large texts, indexing with offsets or term vectors is recommended!" } } ] ``` term vectors: 词向量 ## 这个报错是什么意思? 这个报错的意思是:在尝试高亮显示 content 字段的时候,content字段的内容过大(超过了高亮显示最大允许分析长度1000000个字符)。 ## 为什么会出现这个报错? 高亮显示是elasticsearch在返回搜索结果时,能够**在匹配的文字字段中标记出用户搜索的关键词**的功能 简单来说,就像你用荧光笔在书本上划出重点一样,Elasticsearch会在返回的文本中用特定的HTML标签(如`<em>`)包裹住匹配的搜索词。 当你的 content 字段非常大的时候,elasticsearch需要分析整个文本来确定高亮位置,这会消耗大量资源。因此elasticsearch设置了默认的长度限制来保护系统性能。 ## 如何解决这个报错? ### 方案一,调整最大偏移量 通过修改索引设置,提高允许分析的最大字符偏移量(例如从100万 -->1000万)。 执行设置命令,将最大允许分析的偏移量设置为1000万(根据具体情况设置大小) ```bash PUT /uat-srs-oaext-2025.10.28/_settings { "index": { "highlight.max_analyzed_offset": 10000000 } } ``` 方案一存在以下缺点: 1. 这个参数**只能通过 API 设置**,无法在 Elasticsearch 的配置文件中预先配置 2. 此值设置过大会给elasticsearch服务器内存带来相当大的负担,根据你的服务器资源和实际需求谨慎调整 3. 索引级设置 ### 方案二,优化高亮策略(用于处理超大文本) 如果你的 "content" 字段是巨大的文本(例如几十MB甚至上百MB),那么单纯提高偏移量可能不是最佳选择。针对大文本,使用 **Fast Vector Highlighter (FVH)** 策略并配合 term vectors 是 Elasticsearch 官方推荐的方式,性能会显著提升。 1. 更新索引映射 ```bash PUT /uat-srs-oaext-2025.10.28/_mapping { "properties": { "content": { "type": "text", "term_vector": "with_positions_offsets" } } } ``` *请注意:对已存在的索引更新映射可能不会对已有数据生效,通常需要重建索引。对于新索引,此映射最有效。* 2. 在查询中使用FVH ``` GET /uat-srs-oaext-2025.10.28/_search { "query": { ... }, "highlight": { "type": "fvh", "fields": { "content": {} } } } ``` ### 方案三,调整高亮请求参数 如果不需要高亮整个大字段,你可以通过调整高亮请求的参数,只返回匹配的片段,从而避免分析整个大字段。 ```bash GET /uat-srs-oaext-2025.10.28/_search { "query": { ... }, "highlight": { "fields": { "content": { "number_of_fragments": 3, "fragment_size": 150 } } } } ``` `number_of_fragments`:指定返回的最大高亮片段数,默认为 5 `fragment_size`:每个高亮片段的大小(以字符为单位),默认为 100 ## 关于elasticsearch的高亮显示实现方式 ### Plain Highlighter(默认) - 使用标准的Lucene高亮器 - 适合普通长度的文本 - 我们遇到的错误就是这种高亮器对文本长度的限制 ### Fast Vector Highlighter (FVH) - 需要字段启用`term_vector: "with_positions_offsets"` - 适合大文本字段,性能更好 ### Unified Highlighter - 结合前两者的优点 - 是较新版本中的推荐选择
罗衡
2025年10月30日 10:55
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
Word文件
PDF文档
PDF文档(打印)
分享
链接
类型
密码
更新密码
有效期