1

有没有办法使用 CQL3 基于字符串前缀执行选择?例如,考虑下表:

Key | Value
------------
ABC | 0x01
ABD | 0x02
BBB | 0x03

我想选择所有带有前缀“AB”的键。该数据库将用于存储空间信息,使用 geohash 方法。

4

2 回答 2

2

那是不可能“开箱即用”的......但是,人们想出了一些“技巧”,请参阅这两个帖子:

...另一种(有点相似)方法可能是定义“复合键”,您将一些前缀定义为“分区键”,例如:{key1,key2}, wherekey1 = ABkey2 = ABC... 在这些情况下,您只能通过“key1”查询并获取一组行(就像你想做的那样),或者通过“key1”和“key2”(如果你想要一个特定的条目)。您也可以仅通过“key2”进行查询(如果您将“允许过滤”添加到“选择”查询中,但是如果您有太多行,这可能会导致“问题”)。不确定您是否可以使用您的数据执行此操作...

HTH。

于 2013-12-16T16:42:56.657 回答
1

不是 C* 内置的,但可以使用cassandra-lucene-index C* 插件。您可以在列上创建一个 lucene 索引并使用前缀搜索来搜索文本。

更新:自 v3.4 以来,Cassandra 引入了提供所需功能的SASI 索引。

于 2016-12-11T21:45:28.437 回答