Cassandra 中的默认索引是什么?

What is the default index in Cassandra?

我正在使用 cassandra DSE 6.8。我知道 Cassandra 中使用了几个索引:2nd 索引、SASI、SAI、搜索索引、...

当我在列上创建索引时:

CREATE INDEX status_idx ON table_name (status);

默认索引的名称是什么?

在这种情况下,由于已提供名称,因此将为 status_idx。如果未提供名称,则会根据 table 和列:

自动生成一个
table_name + _ + column_name + _idx

所以在这种情况下,它将是:

table_name_status_idx

编辑

啊……明白了

CREATE INDEX 创建二级索引。

CREATE CUSTOM INDEX 创建 SASI 索引。

开源的Cassandra中只有一个原生索引,通常称为二级索引。所有使用CQL命令创建的索引CREATE INDEX都是二级索引

或者,SSTable 附加二级索引 (SASI) 是一个自定义索引,因此需要使用关键字 CUSTOM 显式创建并指定自定义 class SASIIndex

CREATE CUSTOM INDEX ... USING 'org.apache.cassandra.index.sasi.SASIIndex'

请注意,SASI 被 Cassandra 社区认为是实验性的,默认情况下是禁用的,正如我在此 post -- https://community.datastax.com/questions/12403/ 中所解释的那样。不建议将它们用于生产。

DataStax Enterprise 随 Apache Cassandra 的生产认证发行版一起提供,它具有高级 DSE 搜索功能,允许用户对使用 Lucene 索引的 CQL 表执行复杂的全文 Solr 搜索。自定义索引是使用 class Cql3SolrSecondaryIndex:

创建的
CREATE CUSTOM INDEX ... USING 'com.datastax.bdp.search.solr.Cql3SolrSecondaryIndex'

Astra DB, a fully-managed cloud-native Cassandra-as-a-service, includes the new Storage-Attached Indexing (SAI),Cassandra 的全球分布式索引。使用自定义 class StorageAttachedIndex:

创建索引
CREATE CUSTOM INDEX ... USING 'StorageAttachedIndex'

开源 Cassandra 中尚未提供 SAI 增强功能,但已由 DataStax 捐赠,正在等待 Cassandra 项目接受(请参阅 CEP-7, CASSANDRA-16052)。干杯!