IndicesOptions(索引操作選項)


IndicesOptions$WildcardStates枚舉類型主要定義通配符的作用范圍,例如OPEN,表示處於打開狀態的索引,而CLOSE表示處於關閉狀態的索引。

IndicesOptions$Option定義操作選項:

IGNORE_UNAVAILABLE
可忽略不可用的索引。
IGNORE_ALIASES
忽略別名。
ALLOW_NO_INDICES
允許索引不存在。
FORBID_ALIASES_TO_MULTIPLE_INDICES
禁止操作多個索引或別名。
FORBID_CLOSED_INDICES
禁止操作關閉狀態的索引,如果有這個選項,則API只能對OPEN狀態的索引進行操作。
IndicesOptions針對上面進行組合,默認給出了一些常量組合:

STRICT_EXPAND_OPEN
(EnumSet.of(Option.ALLOW_NO_INDICES), EnumSet.of(WildcardStates.OPEN))
主要代表如下幾層意義:
1、如果是指定索引,則索引必須存在。
2、通配符匹配的范圍為OPEN狀態的索引。
3、如果使用通配符來查找索引,未匹配到任何索引不會拋出異常。
LENIENT_EXPAND_OPEN
(EnumSet.of(Option.ALLOW_NO_INDICES, Option.IGNORE_UNAVAILABLE), EnumSet.of(WildcardStates.OPEN))
主要代表如下幾層意義:
1、允許索引不存在,指定一個不存在的索引,也不會拋出異常。
2、通配符作用范圍為OPEN狀態的索引。
3、如果使用通配符來查找索引,未匹配到任何索引不會拋出異常。
STRICT_EXPAND_OPEN_CLOSED
(EnumSet.of(Option.ALLOW_NO_INDICES), EnumSet.of(WildcardStates.OPEN, WildcardStates.CLOSED))
主要代表如下幾層意義:
1、如果指定索引,該索引必須存在。
2、通配符作用范圍為OPEN、CLOSED狀態的索引。
3、如果使用通配符來查找索引,未匹配到任何索引不會拋出異常。
STRICT_EXPAND_OPEN_FORBID_CLOSED
(EnumSet.of(Option.ALLOW_NO_INDICES, Option.FORBID_CLOSED_INDICES), EnumSet.of(WildcardStates.OPEN))
主要代表如下幾層意義:
1、如果指定索引,該索引必須存在。
2、通配符作用范圍為OPEN狀態的索引。
3、如果使用通配符查找索引,未找到索引不會拋出異常。
4、禁止指定CLOSE狀態的索引。 [6.4.0版本測試,這條規則未生效]
STRICT_SINGLE_INDEX_NO_EXPAND_FORBID_CLOSED
(EnumSet.of(Option.FORBID_ALIASES_TO_MULTIPLE_INDICES, Option.FORBID_CLOSED_INDICES), EnumSet.noneOf(WildcardStates.class))。
主要代表如下幾層意義:
1、指定的索引或別名必須存在。
2、不允許使用通配符。
3、不允許一個別名解析出多個索引的情況。
上面是對IndicesOptions中的枚舉類型與默認定義的索引選項進行了一個說明,當然也可以通過IndicesOptions#fromOptions來自定義。


————————————————
版權聲明:本文為CSDN博主「唯有堅持不懈」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/prestigeding/java/article/details/89683264


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM