【发布时间】:2014-01-03 08:16:24
【问题描述】:
有没有办法使用 CQL3 基于字符串前缀执行选择? 例如,考虑下表:
Key | Value
------------
ABC | 0x01
ABD | 0x02
BBB | 0x03
我想选择所有前缀为“AB”的键。 该数据库将用于存储空间信息,使用 geohash 方法。
【问题讨论】:
标签: cassandra cql cql3 geohashing
有没有办法使用 CQL3 基于字符串前缀执行选择? 例如,考虑下表:
Key | Value
------------
ABC | 0x01
ABD | 0x02
BBB | 0x03
我想选择所有前缀为“AB”的键。 该数据库将用于存储空间信息,使用 geohash 方法。
【问题讨论】:
标签: cassandra cql cql3 geohashing
那是不可能“开箱即用”的......但是,人们想出了一些“技巧”,请参阅这两个帖子:
...另一种(有点类似)方法可能是定义“复合键”,您将一些前缀定义为“分区键”,例如:{key1,key2},其中key1 = AB和key2 = ABC...在这些情况下,您可以仅通过“key1”查询并获取一组行(就像您想要的那样),或者通过“key1”和“key2”(如果您想要特定条目)。您也可以仅通过“key2”查询(如果您在“选择”查询中添加“允许过滤”,但是如果您有太多行,这可能会导致“问题”)。不确定您是否可以对您的数据执行此操作...
HTH。
【讨论】:
不是 C* 内置的,但可以使用 cassandra-lucene-index C* 插件。您可以在列上创建一个 lucene 索引并使用prefix search 搜索文本。
更新:自 v3.4 以来,Cassandra 引入了提供所需功能的 SASI indices。
【讨论】: