在Hector,Cassandra中调用方法“ addEqualsExpression”时出现错误

问题描述

| 您好,开发人员,运行上述代码时出现错误:
public void getConditioningQuery(String columnName,String value){
        QueryResult<OrderedRows<String,String,String>> result =
        (QueryResult<OrderedRows<String,String>>) new IndexedSlicesQuery<String,String>(keyspace,serializer,serializer)
        .addEqualsExpression(\"state\",\"TI\")
        .setReturnKeysOnly()
        .setColumnFamily(CF_NAME)
        .setStartKey(\"\")
        .execute();
        System.out.println(\"Result=\"+result.get().getList());
    }
此方法是查找state = TI的行。 我在我的列族中添加了索引,如果我在cassandra-cli中手动查询,则显示数据,但是如果我使用hector代码,则出现此错误: 在我的IDE =
345 [main] INFO me.prettyprint.cassandra.service.JmxMonitor - Registering JMX me.prettyprint.cassandra.service_MyCluster:ServiceType=hector,MonitorType=hector
867 [main] INFO me.prettyprint.cassandra.hector.TimingLogger - start[1306754734185] time[91] tag[WRITE.success_]
10926 [main] INFO me.prettyprint.cassandra.hector.TimingLogger - start[1306754734314] time[10021] tag[READ.fail_]
me.prettyprint.hector.api.exceptions.HTimedOutException: TimedOutException()
        at me.prettyprint.cassandra.service.ExceptionsTranslatorImpl.translate(ExceptionsTranslatorImpl.java:32)
并且在cassandra log =
ERROR 18:25:34,326 Fatal exception in thread Thread[ReadStage:102,5,main]
java.lang.AssertionError: No data found for NamesQueryFilter(columns=) in DecoratedKey(165611378069681836494944905825187619237,73616e6a6f7578):QueryPath(columnFamilyName=\'user\',superColumnName=\'null\',columnName=\'null\') (original filter NamesQueryFilter(columns=)) from expression \'user.state EQ TI\'
        at org.apache.cassandra.db.ColumnFamilyStore.scan(ColumnFamilyStore.java:1603)
        at org.apache.cassandra.service.IndexScanVerbHandler.doVerb(IndexScanVerbHandler.java:42)
        at org.apache.cassandra.net.MessageDeliveryTask.run(MessageDeliveryTask.java:72)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
        at java.lang.Thread.run(Thread.java:680)
即时消息之所以如此混乱,是因为错误告诉您是否未找到列族用户的列中的数据,但是如果即时消息使用cassandra-cli,则会显示该数据。 即时通讯如此混乱,仍然停留在这里..也许我的方法是错误的?有人可以帮我告诉我什么地方错了吗?即时通讯仍然用谷歌来解决这个问题..感谢您的关注,对不起我的英语不好:D ..     

解决方法

        您还不能将setReturnKeysOnly与索引查询一起使用。这将在以后的版本中修复(请参见链接的Tyler票证);同时,只需让它返回一个或多个列作为解决方法。     ,        如果您使用的是0.8-rc1或类似版本,则似乎是在点击CASSANDRA-2653。这应该在当前的0.8分支中解决。     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...