我将Java SDK 3.0.3
用作CouchBase客户端。使用以下@Configuration
@Bean
public void createIndexes() {
QueryIndexManager indexManager = couchbaseCluster.queryIndexes();
indexManager.createPrimaryIndex(couchbaseProperties.getBucketName(),
CreatePrimaryQueryIndexOptions.createPrimaryQueryIndexOptions());
indexManager.createIndex(couchbaseProperties.getBucketName(),
"user_idx", Collections.singletonList("userId"),
CreateQueryIndexOptions.createQueryIndexOptions());
}
每次我重新运行该应用程序时,您可能会注意到它尝试再次创建现有索引并引发 IndexAlreadyExist 异常。
简而言之,我使用if statement
检查是否创建了索引,但这似乎不是最佳实践。
一堆文档都在强调IF NOT EXISTS
关键字,但是我找不到正确的语法,或者CouchBase不支持此功能。
通过避免所描述的问题来创建索引的最佳方法是什么? 感谢您的帮助。
答案 0 :(得分:0)
QueryIndexOptions
和PrimaryQueryIndexOptions
都具有一个ignoreIfExists属性,您可以启用该属性来获取所需的行为。
CreateQueryIndexOptions.createQueryIndexOptions()
.ignoreIfExists(true)