二级索引
CQL 支持在表上创建二级索引,允许对表的查询使用这些索引。二级索引由由
index_name::= re('[a-zA-Z_0-9]+')
CREATE INDEX
CREATE INDEX
语句用于为给定表中的给定(现有)列创建新的二级索引。如果需要,可以在 ON
关键字之前指定索引本身的名称。
create_index_statement::= CREATE [ CUSTOM ] INDEX [ IF NOT EXISTS ] [ index_name ]
ON table_name '(' index_identifier ')'
[ USING index_type [ WITH OPTIONS = map_literal ] ]
index_identifier::= column_name
| ( KEYS | VALUES | ENTRIES | FULL ) '(' column_name ')'
index_type::= 'sai' | 'legacy_local_table' | fully_qualified_class_name
如果列中已经存在数据,它将被异步索引。创建索引后,列的新数据将在插入时自动索引。尝试创建已经存在的索引将返回错误,除非使用 IF NOT EXISTS
选项。如果使用该选项,如果索引已经存在,则该语句将是无操作的。
示例:
CREATE INDEX userIndex ON NerdMovies (user);
CREATE INDEX ON Mutants (abilityId);
CREATE INDEX ON users (KEYS(favs));
CREATE INDEX ON users (age) USING 'sai';
CREATE CUSTOM INDEX ON users (email)
USING 'path.to.the.IndexClass';
CREATE CUSTOM INDEX ON users (email)
USING 'path.to.the.IndexClass'
WITH OPTIONS = {'storage': '/mnt/ssd/indexes/'};