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

版本: 8.3-8.9

简而言之,当你在Elasticsearch中尝试执行term查询时没有考虑大小写敏感性,就会发生此错误。Elasticsearch的term查询默认是大小写敏感的。要解决这个问题,你可以:

  1. 在索引之前将输入数据和存储的数据转换为统一的大小写格式(小写或大写)
  2. 使用match查询代替term查询,因为它不区分大小写
  3. 在索引期间使用关键词分析器或带有小写过滤器的自定义分析器,确保所有数据都以小写形式存储

日志上下文 #

日志 “case insensitive term query” 的类名是 PlaceHolderFieldMapper.java。 我们从Elasticsearch源代码中提取了以下内容,供那些寻求深入上下文的人参考:

throw new QueryShardException(context; fail("term query"));
 }  @Override
 public Query termQueryCaseInsensitive(Object value; @Nullable SearchExecutionContext context) {
 throw new QueryShardException(context; fail("case insensitive term query"));
 }  @Override
 public Query rangeQuery(
 Object lowerTerm;