You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Java中实现Elastic Search大小写不敏感通配符查询?

Elasticsearch Wildcard查询启用大小写不敏感的实现方案

问题描述

现有如下Elasticsearch查询代码:

BoolQueryBuilder paramFilter = QueryBuilders.boolQuery();
paramFilter.must(QueryBuilders.wildcardQuery(field, "*"+key+"*"));

请问如何在此基础上启用caseInsensitive(大小写不敏感)功能?

解决方法

在Elasticsearch的Java客户端中,wildcardQuery提供了直接开启大小写不敏感的参数,只需要在构建查询时链式调用caseInsensitive(true)即可:

BoolQueryBuilder paramFilter = QueryBuilders.boolQuery();
paramFilter.must(QueryBuilders.wildcardQuery(field, "*"+key+"*")
    .caseInsensitive(true)); // 启用大小写不敏感匹配

补充说明

  • 这个参数从Elasticsearch 7.10版本开始支持,如果你的客户端版本低于该版本,需要先升级依赖包。
  • 如果追求更高的匹配效率,也可以在创建索引时,把目标字段配置为lowercase分词器或归一化器,这样索引阶段就统一处理了大小写,查询时无需额外配置也能实现不敏感匹配。

内容的提问来源于stack exchange,提问作者Eejay Taa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 04:10:38