版本: 6.8-7.1
概述 #
简而言之,当您尝试在 Elasticsearch 中搜索 binary 类型的字段时,会发生此错误。Binary 字段用于存储二进制数据,而这种数据是不可搜索的。
解决方案 #
要解决此问题,您可以采用以下几种方法:
- 更改字段类型:将字段类型更改为可搜索的类型,如
text或keyword - 编码二进制数据:在索引之前,将二进制数据编码为可搜索的格式,如 Base64
- 使用插件或脚本:在搜索过程中使用插件或脚本将二进制数据转换为可搜索的格式
日志上下文 #
“Binary fields do not support searching” 日志的类名是 BinaryFieldMapper.java。我们从 Elasticsearch 源代码中提取了以下内容,供那些希望深入了解上下文的用户参考:
return new BytesBinaryIndexFieldData.Builder(name(), CoreValuesSourceType.BYTES);
}
@Override
public Query termQuery(Object value, QueryShardContext context) {
throw new QueryShardException(context, "Binary fields do not support searching");
}
}
private final boolean stored;
private final boolean hasDocValues;





