Skip to content

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

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功能的兼容性问题,或提供替代的高亮查询方案。

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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