使用第 3 版的 Cassandra Java 驱动程序,如何确定列上是否有二级索引?
使用驱动程序的版本 2,我可以简单地检查是否ColumnMetadata.getIndex()
返回非空值。但是该方法已被删除:
这是因为二级索引在 Cassandra 3.0 中已经完全重新设计......不幸的是,没有简单的方法可以恢复删除方法提供的功能
使用第 3 版的 Cassandra Java 驱动程序,如何确定列上是否有二级索引?
使用驱动程序的版本 2,我可以简单地检查是否ColumnMetadata.getIndex()
返回非空值。但是该方法已被删除:
这是因为二级索引在 Cassandra 3.0 中已经完全重新设计......不幸的是,没有简单的方法可以恢复删除方法提供的功能
Cassandra 驱动程序的作者认识到这是一个重大变化。使用可用的元数据来确定列上是否有索引是不可能的,因为索引实现可以委托给任意 Java 类:二级索引不再是唯一的索引类型。
您可以通过对二级索引使用一致的命名方案,或者对二级索引使用默认的命名方案,然后查询该列的表的表元数据以查看它是否有任何具有预期名称的索引来解决此问题. 默认命名方案是.<table_name>_<column_name>_idx