【问题标题】:slice query using hector on cassandra composite column在 cassandra 复合列上使用 hector 进行切片查询
【发布时间】:2013-06-04 04:56:25
【问题描述】:

在基于复合列的过滤方面需要一些帮助。

由于某种原因,我无法对复合列的第二部分进行过滤 -

create column family xxx with comparator= 'CompositeType(TimeUUIDType, UTF8Type, UTF8Type)' and default_validation_class = 'UTF8Type';

一行数据 -

primaryKey - uuid1:A:123 | uuid2:A:123 | uuid3:B:234| uuid4:C:555

Composite startComposite = new Composite();
startcomposite.addComponent(0,uuidStart,EQUAL)
Composite endComposite = new Composite();
endComposite.addComponent(0,uuidEnd,EQUAL)

上面给出了基于 uuidStart 和 uuidEnd 值的正确结果

例如uuid1:A:123 | uuid2:A:123 | uuid3:B:234

现在,如果我只想要第二部分为“A”的列 -

Composite startComposite = new Composite();
startcomposite.addComponent(0,uuidStart,EQUAL)
startcomposite.addComponent(1,"A",EQUAL)
Composite endComposite = new Composite();
endComposite.addComponent(0,uuidEnd,EQUAL)
endComposite.addComponent(1,"A",EQUAL) OR  endComposite.addComponent(1,"A",GREATER_THAN_EQUAL)

它给了我 - uuid1:A:123 | uuid2:A:123 | uuid3:B:234

我期待 - uuid1:A:123 | uuid2:A:123

这里有什么问题....

我正在使用的代码 -

    SliceQuery<String, Composite, String> sliceQuery = HFactory
            .createSliceQuery(keyspace, ss, cs, ss);
    sliceQuery.setColumnFamily("xxx");
    sliceQuery.setKey(primaryKey);


ColumnSliceIterator<String, Composite, String> csIterator = new ColumnSliceIterator<String, Composite, String>(sliceQuery, startcomposite, endComposite, false);

    while (csIterator.hasNext()) {
        HColumn<Composite, String> next = csIterator.next();
        System.out.println(next.getName());
        System.out.println(next.getValue());
    }

【问题讨论】:

    标签: cassandra slice


    【解决方案1】:

    因为您使用了GREATER_THAN_EQUAL,所以它返回结果并不奇怪。

    【讨论】:

    • 如上所述,与 - endComposite.addComponent(1,"A",EQUAL) 的结果相同,即 - uuid1:A:123 | uuid2:A:123 | uuid3:B:234
    【解决方案2】:

    需要对要切片的复合材料的所有部分具有相同的值。所以改变了顺序。

    【讨论】:

      猜你喜欢
      • 2014-07-24
      • 2013-07-13
      • 2014-11-17
      • 2013-11-01
      • 2012-01-16
      • 2012-04-25
      • 2012-10-08
      • 2012-08-09
      • 2020-01-01
      相关资源
      最近更新 更多