微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

非索引列和一些主键列上的 Cassandra 搜索索引

如何解决非索引列和一些主键列上的 Cassandra 搜索索引

我是 Cassandra 的新手,需要实现搜索功能

我在生产中有一个没有索引的 Cassandra 表。 (最近部署到 prod 所以没有太多数据)。我需要在此现有表的许多列上提供自由文本搜索功能。 我决定添加 Cassandra Search 索引。 我们使用 datastax cassandra,DBA 告诉我搜索已启用。 现在早期的设计者努力不使用表上的索引,因为它是一个繁重的写入应用程序。

我的问题是,如果我在 5 个自由文本可搜索列上创建一个 SEARCH INDEX,在创建 1 个 SEARCH INDEX 之前,我是否必须在这 5 个列上明确创建 5 个索引,或者我可以只创建搜索index 和 solr/cassandra 会处理内部问题并且不会影响写入?

此外,如果我需要创建 5 个列索引,那么我的下一个问题是,搜索索引所需的某些列是主键的一部分,我是否还必须为这些列创建索引或 cassandra 已经创建了内部索引用于主键列。

create table Table if not exists 
keyspace1.Table1 {
 col1 text,//Clustering Key) 
 col2  int,col3 text,col4 date,col5 text,col6 int,col7 text,col8 text,col9 date,col10 map
 col11 map<text,text>
 col12 text
col13 text
col14 text
primary key ((col1),col2,col3,col4,col5)
}

来自我的应用程序的所有查询都将有前 4 列,因为这些列决定了 api 调用者的身份,我无法返回其他身份的数据,因此我必须将它们保留在搜索索引中,并且 AND 等于我的 solr 查询的一部分。

下面只是创建此用例的正确方法create search index if not exists on keyspace1.Table1 with columns col1,col7,col8,col13,col14

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。