1

我对对特定行键的列进行范围扫描很感兴趣。到目前为止,使用 Twitter 的 cassandra 客户端,可以直接找出基于 int 的列的范围扫描:

db.get(:cf, rk, {:start => 1, :finish => 10})

但是,我终其一生都无法在 DataStax 的网站上找到有关如何根据其他数据类型(甚至是 text/utf8)进行开始/完成扫描的文档。

我遇到了一篇博文,其中发帖人使用波浪号“~”来记录 ASCII 范围扫描的结束。DataStax 网站上是否有官方页面记录了可以根据数据类型对列执行的不同范围扫描?

4

1 回答 1

1

Cassandra 将所有数据存储在根据您为列族定义的比较器排序的行中。有关比较器类型的最准确信息将直接在源代码树中找到。每种类型在db/marshal 目录中都有一个对应的类。如果您查看UTF8Type.java类,您会发现它实现了一个比较方法,该方法(最终)进行逐字节比较。

因此,对于 ascii 编码,您将获得 ascii 排序,其中:

"A" < "AA" < "a" < "aa"
于 2013-06-02T17:39:42.113 回答