【问题标题】:Secondary index support in Cassandra?Cassandra 中的二级索引支持?
【发布时间】:2018-06-23 21:11:06
【问题描述】:

blog 我看到下面的声明

二级索引

二级索引是 MongoDB 中的一流结构。这使得 很容易索引存储在 MongoDB 中的对象的任何属性,即使 它是嵌套的。这使得基于这些查询变得非常容易 二级索引 Cassandra 仅粗略地支持辅助 索引。二级索引也仅限于单列和 平等比较。如果您主要是通过 主键,那么 Cassandra 就可以很好地为您工作。

我的问题是 Cassandra 不能在不同的列上创建多个二级索引吗?

我们也不能在 Cassandra 上执行操作 likefull text search,因为它说二级索引仅适用于相等比较

更新:- cassandra二级索引和Mongo二级索引有什么区别?

【问题讨论】:

    标签: indexing cassandra nosql secondary-indexes


    【解决方案1】:

    Cassandra 在不同的列上创建多个二级索引?

    是的,它可以。 Multiple Indexes 是可以的,但是必须使用ALLOW FILTERING 来查询,这会影响性能。 cassandra 中的二级索引与 RDBMS 中的二级索引不同,使用前应进行适当的分析。

    我们不能在 Cassandra 上执行类似操作或全文搜索吗? 表示二级索引仅适用于相等比较

    普通二级索引不支持like 操作。虽然最新的 cassandra 版本 (3.x) 支持 SASI Index,但支持 likeCONTAINS 操作。

    Custom SASI Index

    【讨论】:

    • 好吧,如果我们可以使用影响性能的 ALLOW FILTERING 创建多个二级索引,那么创建多个索引有什么用?您能否详细说明 cassandra 中的二级索引与 RDBMS 或 Mongo 有何不同?
    • 如果你是对的,如果通配符以 '%test%' 开头,则不支持提供的索引,否则应该支持
    • 如果您通过分区键查询,可以使用多个索引...如果您仅通过二级索引查询,cassandra 是分布式系统,它必须到每个节点查找特定值...因此导致性能问题
    • cassandra is distributed system if you are only querying by secondary index it has to go to each node to look for particular value 我现在有点困惑。我相信像任何分布式存储(例如:- Mongo)一样,数据是根据某些关键产品类型进行分区的。现在对于产品类型的电子数据将存储在特定节点上。现在,如果我们查询任何列(在其上创建了二级索引)以及分区键,那么查询将转到特定节点而不是所有节点。我相信 cassandra 也是如此。不是吗?
    • 是的...这就是我说Multiple indexes can be used if you are querying by partition key...但考虑场景where secondary_index_col='something'这将适用于所有节点
    猜你喜欢
    • 2013-07-25
    • 1970-01-01
    • 1970-01-01
    • 2018-07-01
    • 1970-01-01
    • 2014-06-06
    • 2016-06-29
    • 2013-09-30
    • 1970-01-01
    相关资源
    最近更新 更多