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

ES6升级ES7时GetIndexRequest查全索引触发系统索引访问警告如何解决

问题原因

ES 7.x版本开始将.kibana、.security这类以.开头的内置索引标记为系统索引,默认限制直接访问。你使用*作为索引通配符时会匹配到所有索引,包含上述系统索引,因此触发对应警告。
你之前仅将请求类型设置为open未生效,是因为系统索引本身默认处于open状态,该配置仅会过滤closed状态的索引,无法过滤系统索引。

解决方案

提供两种适配方案,可根据你的业务场景选择:

方案1:通配符直接排除系统索引

通常业务自定义索引不会以.开头,可直接在通配符中添加排除规则,语法为*,-.*:

  • * 匹配所有索引
  • - 是排除规则标记
  • .* 匹配所有以.开头的索引

对应代码示例:

val request = GetIndexRequest()
request.indices("*,-.*")
val response = client.indices()[request, RequestOptions.DEFAULT]

方案2:通过IndicesOptions显式过滤系统索引

如果你的业务存在以.开头的自定义索引,不想全量排除所有.开头的索引,可通过配置索引选项显式排除ES官方标记的系统索引:

val request = GetIndexRequest()
request.indices("*")
// 配置索引选项,官方提供的系统索引过滤能力
val indicesOptions = IndicesOptions.builder()
    .excludeSystemIndices(true) // 核心配置:排除系统索引
    .expandWildcardsOpen(true) // 保留匹配open状态索引的逻辑
    .expandWildcardsClosed(false)
    .ignoreUnavailable(false)
    .allowNoIndices(true)
    .build()
request.indicesOptions(indicesOptions)
val response = client.indices()[request, RequestOptions.DEFAULT]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 18:27:01