Elasticsearch查询索引设置

  • Post author:
  • Post category:其他

涉及到ES查询时,需要考虑索引可能不存在的情况。
RestHighLevelClient需要设置searchRequest.indicesOptions(IndicesOptions.LENIENT_EXPAND_OPEN);
STRICT_EXPAND_OPEN
主要代表如下几层意义:
1、如果是指定索引,则索引必须存在。
2、通配符匹配的范围为OPEN状态的索引。
3、如果使用通配符来查找索引,未匹配到任何索引不会抛出异常。

LENIENT_EXPAND_OPEN(项目中使用这种)
主要代表如下几层意义:
1、允许索引不存在,指定一个不存在的索引,也不会抛出异常。
2、通配符作用范围为OPEN状态的索引。
3、如果使用通配符来查找索引,未匹配到任何索引不会抛出异常。

LENIENT_EXPAND_OPEN_CLOSED;
主要代表如下几层意义:
1、如果指定索引,该索引必须存在。
2、通配符作用范围为OPEN、CLOSED状态的索引。
3、如果使用通配符来查找索引,未匹配到任何索引不会抛出异常。

STRICT_EXPAND_OPEN_CLOSED;
主要代表如下几层意义:
1、如果指定索引,该索引必须存在。
2、通配符作用范围为OPEN、CLOSED状态的索引。
3、如果使用通配符来查找索引,未匹配到任何索引不会抛出异常。

STRICT_EXPAND_OPEN_FORBID_CLOSED;
主要代表如下几层意义:
1、如果指定索引,该索引必须存在。
2、通配符作用范围为OPEN状态的索引。
3、如果使用通配符查找索引,未找到索引不会抛出异常。
4、禁止指定CLOSE状态的索引。 [6.4.0版本测试,这条规则未生效]

STRICT_SINGLE_INDEX_NO_EXPAND_FORBID_CLOSED;
主要代表如下几层意义:
1、指定的索引或别名必须存在。
2、不允许使用通配符。
3、不允许一个别名解析出多个索引的情况。


版权声明:本文为weixin_44412971原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。