Python 键上的cassandra cqlengine映射列索引
使用Cassandra python驱动程序映射器cqlengine,在创建带有映射集合的模型时,似乎只能在映射值上创建索引Python 键上的cassandra cqlengine映射列索引,python,cassandra,cqlengine,Python,Cassandra,Cqlengine,使用Cassandra python驱动程序映射器cqlengine,在创建带有映射集合的模型时,似乎只能在映射值上创建索引 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(),
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)
将产生一个类似于
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));
cqlsh:baz>描述foo;
创建表bar.asset\u度量(
id uuid,
time_id TIMEUID,
条形图,
主键(id、时间\ id)
)使用群集顺序(时间\ id描述)
在baz.foo(值(bar))上创建索引;
如何让cqlengine在映射键上创建索引,
cqlengine目前不支持索引映射键。如果您感兴趣,创建正在运行的cql索引查询的代码位于此处
这将形成将要执行的cql语句。
它将形成一个沿着行的查询
在keyspace.model\u name\u此处(“map\u name\u此处”)上创建索引
默认情况下,这将为值编制索引。有一种方法可以使用keys前缀使用纯cql索引映射的键
这个查询看起来像这样
在keyspace.model_name_此处(键(映射名称_此处))上创建索引
你可以在这篇博文中阅读更多关于集合索引的内容。
不幸的是,cqlengine还不支持该功能。您必须进入基本驱动程序并直接使用cql来创建该类型的索引。看起来我们需要的是column类处理其
index\u column\u name
,以便在映射的情况下可以正确处理专业化,即值/键/条目等。当我自己试图解决这个问题时,我被转移到了一边,当时我正在看,并认为这就是生成create索引字符串的地方。