Skip to content

console查询 Easysearch中索引数据异常,返回500错误 #180

@zhangwx0794

Description

@zhangwx0794

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: true
elasticsearch.api_compatibility_version: "7.10.2"
索引格式 filebeat-7.10.2-YYYY.MM.dd(示例:filebeat-7.10.2-2025.03.20)

索引状态

复现步骤

  1. 执行含highlight的查询(请求体见上文)
  2. 观察响应:500错误
  3. 移除highlight字段,重新执行
  4. 观察响应: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

问题分析

  1. 兼容性验证:Easysearch已配置Elasticsearch 7.10.2兼容模式,但highlight功能可能存在实现差异
  2. 字段合法性
    • 通配符字段fields: { "*": {} }是否符合Easysearch语法?
    • 标签格式pre_tags/post_tags是否支持自定义符号(@开头)?
  3. 索引特性
    • filebeat索引使用动态mapping,是否存在不支持高亮的字段类型?
    • 检查Mapping中是否包含index: true的文本字段(高亮依赖index属性)

建议排查方向

  1. 验证Easysearch对highlight功能的兼容性(对比Elasticsearch 7.10.2文档)
  2. 检查fields: { "*": {} }是否支持,尝试指定具体字段(如message
  3. 测试简化版高亮配置:
    "highlight": {
      "fields": { "message": {} }
    }
  4. 查看Easysearch集群日志,定位具体错误原因(如字段类型不支持、语法解析错误)

期待官方团队协助定位highlight功能的兼容性问题,或提供替代的高亮查询方案。

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions