在本文中,我们将讨论Cassandra中SET集合上的二级索引的概述,然后将执行该练习并了解其实际工作原理,最后总结出SET集合上的二级索引的重要性。让我们一一讨论。
前提条件–
- Apache Cassandra中索引的概念
- Apache Cassandra中的收集数据类型
概述 :
在Cassandra中的SET集合上创建二级索引非常有用。因此,在这里您将看到在集合上创建索引的实际用例,因为它使搜索和查询数据非常高效和快捷。因此,如果要基于关键字进行搜索,则在搜索和查询数据时,可以将CONTAINS关键字用于集合数据类型中的特定关键字。让我们借助示例来了解整个概念。
句法 :
在本文中,您将看到如何在集合上创建索引的语法部分。您可以按以下方式使用给定的以下命令。
CREATE INDEX ON ()
在这里,您将看到WHERE子句部分的语法,在这里您将使用CONTAINS关键字搜索SET集合中的特定值。
WHERE CONTAINS
例子 –
让我们考虑一下现有的键空间即cluster1,然后首先使用CQL命令创建一个user_data表,如下所示。
步骤1:创建表-user_data –
use cluster1;
create table user_data
(
user_id varchar,
user_first_name varchar,
user_last_name varchar,
company varchar,
user_tags set,
primary key(user_id)
);
步骤2:在user_tags上创建索引–
CREATE INDEX ON user_data(user_tags);
步骤3:插入数据–
insert into user_data(user_id, user_first_name, user_last_name, company, user_tags)
values('Ashish01','Ashish','Rana','abc',{'Java'});
insert into user_data(user_id, user_first_name, user_last_name, company, user_tags)
values('Ashish02','Ayush','NA','abc',{'Python'});
insert into user_data(user_id, user_first_name, user_last_name, company, user_tags)
values('Ashish03','shivang','NA','abc',{'python'});
insert into user_data(user_id, user_first_name, user_last_name, company, user_tags)
values('Ashish04','Bhagyesh','NA','abc',{'c++'});
步骤4:验证和读取数据–
select * from user_data;
步骤5:输出–
user_id | company | user_first_name | user_last_name | user_tags |
---|---|---|---|---|
Ashish04 | abc | Bhagyesh | NA | {‘c++’} |
Ashish03 | abc | shivang | NA | {‘python’} |
Ashish02 | abc | Ayush | NA | {‘Python’} |
Ashish01 | abc | Ashish | Rana | {‘Java’} |
步骤6:根据特定的关键字进行搜索–
select * from user_data where user_tags CONTAINS 'Java';
步骤7:输出–
user_id | company | user_first_name | user_last_name | user_tags |
---|---|---|---|---|
Ashish01 | abc | Ashish | Rana | {‘Java’} |