首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Cassandra - Hector:按行键搜索,但按进一步的表达式过滤?

Cassandra - Hector:按行键搜索,但按进一步的表达式过滤?
EN

Stack Overflow用户
提问于 2011-06-09 17:55:22
回答 2查看 1.4K关注 0票数 0
代码语言:javascript
复制
create column family Records with
          comparator = UTF8Type and
          column_metadata =
          [
            {column_name: name, validation_class: UTF8Type},
            {column_name: label, validation_class: UTF8Type},
            {column_name: releasedate, validation_class: LongType},

我想通过Row-Key查询记录,然后进一步检查releasedate (一个时间戳值)。据我所知:http://www.datastax.com/dev/blog/whats-new-cassandra-07-secondary-indexes,这应该很容易实现,因为我首先通过行键查询,然后通过releasedate缩小范围。

但是如何在hector中做到这一点呢?

使用SliceQuery不起作用。我知道有IndexedSliceQuery,但我没有s个二级索引集(可以看出是绝对的)。使用IndexedSliceQuery (即使我没有二级索引)从来都是不正确的,并且是必须的吗?

谢谢马库斯

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-06-15 13:49:22

如果您知道需要按发布日期查询数据,那么使用Apache Cassandra时,您应该以这种方式存储数据。

这可以通过两种方式来完成:-调整上面的列族定义中的元数据,以包括在releaseddate上的索引:

代码语言:javascript
复制
update column family Records with column_metadata=[{column_name: releasedate, validation_class: LongType, index_name:releasedate_idx, index_type:0}];    

  • 或创建一个附加的列族,该列族使用发布日期作为键,并将记录列族的键存储为列名。这基本上与上面的二级索引定义做了相同的事情,但使管理更新和查询的过程更加手动。

我建议使用第一种方法,让您能够访问IndexedSlicesQuery及其所有优点。

票数 2
EN

Stack Overflow用户

发布于 2011-06-13 06:30:00

抱歉,Cassandra API目前不能混合服务器端的行和列过滤。(因为它只对保持顺序的分区程序有意义,所以这种情况不太可能改变。)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6291025

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档