-
Notifications
You must be signed in to change notification settings - Fork 15
Open
Description
console查询 [Easysearch] 默认使用含highlight的查询语句返回500错误(console版本1.29.0)
问题描述
使用console查询Easysearch日志索引时,包含highlight字段的查询语句返回500错误。移除highlight配置后查询成功。
错误截图
报错请求详情
| 字段 | 值 |
|---|---|
| 接口地址 | http://14.103.163.96:10107/elasticsearch/infini_default_system_cluster/search/ese?timeout=60s |
| 响应状态码 | 500 Internal Server Error |
| 触发字段 | highlight配置(详见请求体) |
请求体(详版+简化版)
{
"index": "filebeat-*",
"body": {
"query": {
"bool": {
"must": [],
"filter": [{
"match_all": {}
}, {
"range": {
"@timestamp": {
"gte": "2025-03-19T16:00:00.000Z",
"lte": "2025-03-20T15:59:59.999Z"
}
}
}],
"should": [],
"must_not": []
}
},
"from": 0,
"size": 20,
"highlight": {
"pre_tags": ["@highlighted-field@"],
"post_tags": ["@/highlighted-field@"],
"fields": {
"*": {}
}
},
"sort": [{
"@timestamp": {
"order": "desc"
}
}],
"aggs": {
"counts": {
"date_histogram": {
"fixed_interval": "10m",
"field": "@timestamp",
"min_doc_count": 1,
"time_zone": "Asia/Shanghai"
}
}
}
}
}{
"index": "filebeat-*",
"body": {
"query": { /* 省略query配置 */ },
"highlight": { // 问题根源字段
"pre_tags": ["@highlighted-field@"],
"post_tags": ["@/highlighted-field@"],
"fields": { "*": {} }
},
/* 其他配置:from/size/sort/aggs */
}
}环境信息
| 组件 | 版本/配置 |
|---|---|
| 操作系统 | CentOS Linux 7.6 x86_64 |
| Easysearch | easysearch-1.11.0-1992-linux-amd64-bundle |
| console | console-1.29.0-1992-linux-amd64 |
| filebeat | docker.elastic.co/beats/filebeat:7.10.2(容器部署) |
| 兼容性配置 | elasticsearch.api_compatibility: trueelasticsearch.api_compatibility_version: "7.10.2" |
| 索引格式 | filebeat-7.10.2-YYYY.MM.dd(示例:filebeat-7.10.2-2025.03.20) |
索引状态
- 索引创建:filebeat写入es自动创建索引且数据写入成功(截图:索引状态)
- 索引Mapping文件:filebeat-7.10.2-log-mapping.txt
复现步骤
- 执行含
highlight的查询(请求体见上文) - 观察响应:500错误
- 移除
highlight字段,重新执行 - 观察响应:200成功
成功/失败对比
| 场景 | 响应状态 | 是否包含highlight |
|---|---|---|
含highlight查询 |
500 | 是 |
不含highlight查询 |
200 | 否 |
配置详情
filebeat主配置(filebeat.yml)
filebeat.config:
inputs:
path: ${path.config}/inputs.d/*.yml
reload.enabled: true
output.elasticsearch:
hosts: ["easysearch地址"]
index: "filebeat-%{[agent.version]}-%{+yyyy.MM.dd}" # 索引格式
# 认证配置(已脱敏)
username: "elastic"
password: "xxxxx"
setup.template.name: "filebeat"
setup.template.pattern: "filebeat-*"日志采集配置(inputs.d/log.yml)
- type: log
paths:
- /boss/softlog/dubbo/auth/auth01-operation-face-base/logs/*.log
multiline:
pattern: '^\d{4}\-\d{2}\-\d{2}\s'
negate: true
match: after
fields:
server: auth
app: auth01-operation-face-base
fileType: server问题分析
- 兼容性验证:Easysearch已配置Elasticsearch 7.10.2兼容模式,但
highlight功能可能存在实现差异 - 字段合法性:
- 通配符字段
fields: { "*": {} }是否符合Easysearch语法? - 标签格式
pre_tags/post_tags是否支持自定义符号(@开头)?
- 通配符字段
- 索引特性:
- filebeat索引使用动态mapping,是否存在不支持高亮的字段类型?
- 检查Mapping中是否包含
index: true的文本字段(高亮依赖index属性)
建议排查方向
- 验证Easysearch对
highlight功能的兼容性(对比Elasticsearch 7.10.2文档) - 检查
fields: { "*": {} }是否支持,尝试指定具体字段(如message) - 测试简化版高亮配置:
"highlight": { "fields": { "message": {} } }
- 查看Easysearch集群日志,定位具体错误原因(如字段类型不支持、语法解析错误)
期待官方团队协助定位highlight功能的兼容性问题,或提供替代的高亮查询方案。
Metadata
Metadata
Assignees
Labels
No labels
