适用版本: 6.8-8.9
1. 错误异常的基本描述 #
unknown boolean property [fieldName] 表示 Elasticsearch 在解析 Graph API 配置时,遇到了无法识别的布尔类型属性。
从源码可见,这个异常在 Graph 探索请求的解析路径中抛出,当布尔属性名无法匹配 significance 或 return_detailed_info 等已知字段时触发。
典型报错 #
ElasticsearchParseException: Unknown boolean property: [invalid_property]
2. 为什么会发生这个错误 #
- 属性名拼写错误:如将
significance拼写错误。 - 版本不兼容:使用了较新版本特有的属性。
- 多余的属性:配置中包含了不被支持的字段。
- API 误用:混淆了不同 API 的配置参数。
3. 排查步骤 #
- 检查配置结构:确认 Graph 探索请求的结构符合规范。
- 核对属性名:确认布尔属性名拼写正确且在支持列表中。
- 查阅版本文档:确认属性在当前版本中受支持。
- 简化配置:使用最小配置逐步验证。
4. 修复建议 #
方案一:修正属性名 #
确保使用正确的属性名:
// 错误示例
{
"vertices": {
"my_field": {
"invalid_property": true
}
}
}
// 正确示例
{
"vertices": {
"my_field": {
"significance": true,
"return_detailed_info": false
}
}
}
方案二:移除无效属性 #
删除配置中不被支持的布尔属性。
方案三:升级版本 #
如果需要使用新属性,升级 Elasticsearch 版本。
5. 小结 #
unknown boolean property 通常意味着配置中的布尔属性名有误。排查时应优先检查属性名拼写和版本兼容性。
相关错误 #
- unknown-numeric-property-fieldname-how-to-solve-this-elasticsearch-exception
- unknown-object-property-fieldname-how-to-solve-this-elasticsearch-exception
- parse-exception-how-to-solve-this-elasticsearch-exception
附:日志上下文 #
if (SIGNIFICANCE_FIELD.match(fieldName, parser.getDeprecationHandler())) {
graphRequest.useSignificance(parser.booleanValue());
} else if (RETURN_DETAILED_INFO.match(fieldName, parser.getDeprecationHandler())) {
graphRequest.returnDetailedInfo(parser.booleanValue());
} else {
throw new ElasticsearchParseException("Unknown boolean property: [" + fieldName + "]");
}
} else if (token == XContentParser.Token.VALUE_STRING) {
if (TIMEOUT_FIELD.match(fieldName, parser.getDeprecationHandler())) {
graphRequest.timeout(TimeValue.parseTimeValue(parser.text(), null, "timeout"));
} else {





