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