📜  Cassandra 中 SET 集合的二级索引

📅  最后修改于: 2021-09-08 16:18:09             🧑  作者: Mango

在本文中,我们将讨论 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’}