Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cassandra 与Queryslice.setrange混淆_Cassandra_Hector - Fatal编程技术网

Cassandra 与Queryslice.setrange混淆

Cassandra 与Queryslice.setrange混淆,cassandra,hector,Cassandra,Hector,我是卡桑德拉和赫克托的新手。现在我正试图检索一些存储在cassandra中的数据。有很多列,其中一些列有前缀 第1列第2列第3列前缀x1_前缀x2_列第3列前缀x1_前缀x2_列4…依此类推 现在我想得到所有带有前缀x1_prefix2的列_ 然而,我得到了比我想要的更多的东西,其他一些专栏也被重新引用 CF比较器是ByTestType,我也尝试了utf8类型,它不工作 下面是我的代码 SliceQuery<UUID, String, ByteBuffer> query = HFac

我是卡桑德拉和赫克托的新手。现在我正试图检索一些存储在cassandra中的数据。有很多列,其中一些列有前缀

第1列第2列第3列前缀x1_前缀x2_列第3列前缀x1_前缀x2_列4…依此类推

现在我想得到所有带有前缀x1_prefix2的列_

然而,我得到了比我想要的更多的东西,其他一些专栏也被重新引用

CF比较器是ByTestType,我也尝试了utf8类型,它不工作

下面是我的代码

SliceQuery<UUID, String, ByteBuffer> query = HFactory.createSliceQuery(
                keyspace, UUIDSerializer.get(), stringSerializer,
                ByteBufferSerializer.get());
        String columnPrifx = "prefix1_prefix2";
        query.setKey(keyuuid).setColumnFamily("UserLogin");

    query.setRange(columnPrifx, columnPrifx, false, Integer.MAX_VALUE);
    //query.setRange(columnPrifx, null, false, Integer.MAX_VALUE);
            //i also tried null above
    ColumnSliceIterator<UUID, String, ByteBuffer> iterator = new ColumnSliceIterator<UUID, String, ByteBuffer>(
            query, null, "\uFFFF", false);


    while (iterator.hasNext()) {

        HColumn<String, ByteBuffer> c = iterator.next();
        System.out.println(c.getName());


    }
SliceQuery query=HFactory.createSliceQuery(
键空间、UUIDSerializer.get()、stringSerializer、,
ByteBufferSerializer.get());
字符串columnPrifx=“prefix1\u prefix2”;
setKey(keyuuid).setColumnFamily(“用户登录”);
setRange(columnPrifx、columnPrifx、false、Integer.MAX_值);
//setRange(columnPrifx,null,false,Integer.MAX_值);
//我也尝试了上面的null
ColumnSiceIterator迭代器=新ColumnSiceIterator(
查询,null,“\uFFFF”,false);
while(iterator.hasNext()){
HColumn c=迭代器.next();
System.out.println(c.getName());
}
所以,所有这些,我得到了比我预期的更多的专栏。。。有人能帮我吗
非常感谢

在生成键时不要压缩字符串,请尝试将列名拆分为复合键,如“prefix1\u prefix2\u”和“column3”。现在,如果您获取如下所示的数据,您将得到结果

Composite startRange = new Composite();
startRange.addComponent(0, "prefix1_prefix2_",Composite.ComponentEquality.EQUAL);

Composite endRange = new Composite();
endRange.addComponent(0, "prefix1_prefix2_",Composite.ComponentEquality.GREATER_THAN_EQUAL);

query.setRange(startRange, endRange, false, Integer.MAX_VALUE);