首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >cassandra cqlengine映射键上的列索引

cassandra cqlengine映射键上的列索引
EN

Stack Overflow用户
提问于 2016-02-19 04:50:49
回答 1查看 1K关注 0票数 2

使用Cassandra python驱动程序映射器cqlengine创建带有地图集合的模型时,似乎只能在地图值上创建索引

代码语言:javascript
复制
class Foo(Model):
    id = columns.UUID(partition_key=True)
    time_id = columns.UUID(primary_key=True, clustering_order='DESC')
    bar = columns.Map(columns.Ascii(), columns.Double(), index=True)

将产生一个表,如

代码语言:javascript
复制
cqlsh:baz> DESCRIBE foo;
    CREATE TABLE bar.asset_metric (
        id uuid,
        time_id timeuuid,
        bar map<ascii, double>,
        PRIMARY KEY (id, time_id)
    ) WITH CLUSTERING ORDER BY (time_id DESC)
CREATE INDEX index_foo_bar ON baz.foo (values(bar));

如何让cqlengine在映射键上创建索引?

EN

回答 1

Stack Overflow用户

发布于 2016-02-19 06:37:58

Richard,cqlengine当前不支持索引映射键。如果您感兴趣,可以在此处找到创建运行的cql索引查询的代码。

https://github.com/datastax/python-driver/blob/master/cassandra/cqlengine/management.py#L197-L201

这是从将要执行的cql语句开始的。它将沿着行形成一个查询。

在keyspace.model_name_here ("map_name_here")上创建索引index_name_here。

默认情况下,这将为这些值建立索引。有一种方法可以使用keys前缀来索引具有纯cql的map的键。

该查询将类似于keyspace.model_name_here(KEYS(map_name_here));上CREATE INDEX index_name_here

你可以在这篇博客文章中阅读更多关于集合索引的内容。http://www.datastax.com/dev/blog/cql-in-2-1

不幸的是,cqlengine还不支持这个特性。您必须放入基本驱动程序并直接使用cql来创建该类型的索引。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35492165

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档