elasticsearch config_error ai_generated true

Elasticsearch解析异常:无法解析搜索模板 [my_template];错误:第3行Mustache语法错误:意外的字符 '}'

ElasticsearchParseException: failed to parse search template [my_template]; error: Mustache syntax error at line 3: unexpected character '}'

ID: elasticsearch/search-template-parsing-error

其他格式: JSON · Markdown 中文 · English
90%修复率
86%置信度
1证据数
2024-03-18首次发现

版本兼容性

版本状态引入弃用备注
7.15.0 active
8.7.0 active
8.13.0 active

根因分析

Elasticsearch中定义的搜索模板包含无效的Mustache语法,例如不匹配的花括号或错误的变量插值,导致模板解析失败。

English

A search template defined in Elasticsearch contains invalid Mustache syntax, such as mismatched braces or incorrect variable interpolation, causing template parsing to fail.

generic

官方文档

https://www.elastic.co/guide/en/elasticsearch/reference/current/search-template.html

解决方案

  1. Retrieve the template definition using GET /_scripts/my_template, fix the Mustache syntax (e.g., replace unmatched '}' with '{{/query}}'), and update it using PUT /_scripts/my_template with the corrected source. Example fix: change '{{#query}} {{field}} }' to '{{#query}} {{field}} {{/query}}'.
  2. Use an inline template in the search query instead of a stored template to bypass the parsing issue temporarily: GET /_search/template { 'source': { 'query': { 'match': { 'field': '{{value}}' } } }, 'params': { 'value': 'test' } }

无效尝试

常见但无效的做法:

  1. 95% 失败

    Re-saving the template with the same invalid syntax will produce the same error; the template must be corrected first.

  2. 85% 失败

    Clearing the search template cache via POST /_cache/clear does not fix the underlying template definition.