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

如何在HighLevelClient中移除ignore_throttled参数?Spring Boot ES适配

解决Elasticsearch 6.2.2与HighLevelClient 7.x的ignore_throttled参数冲突问题

方法一:手动移除ignore_throttled参数(无需降级客户端)

7.x版本的HighLevelClient会自动向SearchRequest中添加ignore_throttled参数,但ES 6.2.2不支持该参数,可通过以下两种方式移除:

方式1:通过SearchSourceBuilder显式设置参数为null

在构建SearchSourceBuilder时,调用setIgnoreThrottled方法并传入null,客户端将不会在请求中携带该参数:

SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();
sourceBuilder.query(QueryBuilders.matchAllQuery());
// 显式设置ignore_throttled为null,避免客户端自动添加该参数
sourceBuilder.setIgnoreThrottled(null);
searchRequest.source(sourceBuilder);

方式2:修改请求JSON内容(若方式1无效)

如果方式1不生效,可将SearchRequest转换为JSON字符串后移除ignore_throttled字段,再重新构建请求:

SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();
sourceBuilder.query(QueryBuilders.matchAllQuery());
searchRequest.source(sourceBuilder);

// 将请求转换为JSON
XContentBuilder builder = XContentFactory.jsonBuilder();
searchRequest.source().toXContent(builder, ToXContent.EMPTY_PARAMS);
String json = Strings.toString(builder);

// 移除ignore_throttled字段
json = json.replace(",\"ignore_throttled\":true", "");

// 重新设置回SearchRequest
searchRequest.source(SearchSourceBuilder.fromXContent(XContentFactory.jsonBuilder().json(json)));

方法二:对齐客户端与ES服务器版本(解决依赖冲突)

你当前使用的spring-boot-starter-data-elasticsearch:2.1.10.RELEASE默认依赖的Elasticsearch客户端版本可能与6.2.2不一致,导致降级时出现未知错误,可通过强制指定版本解决:

1. Gradle中强制指定客户端版本

修改依赖配置,明确指定Elasticsearch客户端版本与服务器一致:

implementation 'org.springframework.boot:spring-boot-starter-data-elasticsearch:2.1.10.RELEASE'
// 强制锁定Elasticsearch客户端及核心包版本为6.2.2
implementation 'org.elasticsearch.client:elasticsearch-rest-high-level-client:6.2.2'
implementation 'org.elasticsearch:elasticsearch:6.2.2'

2. 排除Starter中默认的高版本依赖

若存在依赖冲突,需排除Starter自带的高版本ES组件:

implementation('org.springframework.boot:spring-boot-starter-data-elasticsearch:2.1.10.RELEASE') {
    exclude group: 'org.elasticsearch.client', module: 'elasticsearch-rest-high-level-client'
    exclude group: 'org.elasticsearch', module: 'elasticsearch'
}
implementation 'org.elasticsearch.client:elasticsearch-rest-high-level-client:6.2.2'
implementation 'org.elasticsearch:elasticsearch:6.2.2'

3. 检查依赖树

执行gradle dependencies命令查看依赖树,确保所有Elasticsearch相关依赖版本均为6.2.2,无混合版本情况。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 17:05:52