首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Hector slicequery 'where‘子句

Hector slicequery 'where‘子句
EN

Stack Overflow用户
提问于 2013-06-12 14:54:01
回答 1查看 669关注 0票数 1

假设我有一个包含以下列的表ClientHeaders

代码语言:javascript
复制
| UUID | Cliend_id | IP | Country | Date |

其中UUID是主键。

我想使用这个查询:

代码语言:javascript
复制
select * from ClientHeaders where Client_id = "123";

我如何使用hector的slicequery来实现。

我知道如果是这样的话:select * from ClientHeaders where UUID= "123";

下面的代码就可以完成任务:

代码语言:javascript
复制
sliceQuery.setColumnFamily("ClientHeaders");
sliceQuery.setKey("123");
sliceQuery.setRange("", "", false, 5);
QueryResult<ColumnSlice<String, String>> result = sliceQuery.execute(); 

因为UUID是主键,所以sliceQuery.setKey("123");使用主键,所以有没有办法从非主键执行where子句功能?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-12 16:38:56

为此,您必须使用IndexedSlicesQuery

代码语言:javascript
复制
StringSerializer stringSerializer = StringSerializer.get();
BytesArraySerializer bas = BytesArraySerializer.get();


IndexedSlicesQuery<String, String, byte[]> indexedSlicesQuery = 
            HFactory.createIndexedSlicesQuery("your keyspace", stringSerializer, stringSerializer, bas);

indexedSlicesQuery.setColumnFamily("ClientHeaders");
indexedSlicesQuery.setColumnNames("UUID","Cliend_id","IP","Country","Date");
indexedSlicesQuery.addEqualsExpression("Client_id", stringSerializer.toBytes("123"));

QueryResult<OrderedRows<String, String, byte[]>> result = indexedSlicesQuery.execute();
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17059350

复制
相关文章

相似问题

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