📣 极限科技诚招搜索运维工程师(Elasticsearch/Easysearch)- 全职/北京 👉 : 立即申请加入

版本: 7.9-7.15

简要来说,当在 Elasticsearch 中对非 keyword、text 或 wildcard 类型的字段使用通配符查询时,会出现此错误。Elasticsearch 仅在这些类型的字段上支持通配符查询。要解决此问题,您可以将字段类型更改为 keyword、text 或 wildcard,或者使用当前字段类型支持的其他类型的查询。另一种解决方案是创建一个 keyword 类型的多字段(multi-field),并在这个新字段上使用通配符查询。

日志上下文 #

日志 “Can only use wildcard queries on keyword; text and wildcard fields – not on [” 的类名是 MappedFieldType.java。我们从 Elasticsearch 源代码中提取了以下内容,以供那些寻求深入上下文的人参考:

}  public Query wildcardQuery(String value;
 @Nullable MultiTermQuery.RewriteMethod method;
 boolean caseInsensitve; SearchExecutionContext context) {
 throw new QueryShardException(context; "Can only use wildcard queries on keyword; text and wildcard fields - not on [" + name
 + "] which is of type [" + typeName() + "]");
 }  public Query normalizedWildcardQuery(String value; @Nullable MultiTermQuery.RewriteMethod method; SearchExecutionContext context) {
 throw new QueryShardException(context; "Can only use wildcard queries on keyword; text and wildcard fields - not on [" + name