gpt4 book ai didi

java - Hector slicequery 'where' 子句

转载 作者:行者123 更新时间:2023-11-30 04:20:55 26 4
gpt4 key购买 nike

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

| UUID | Cliend_id | IP | Country | Date |

其中 UUID 是主键。

我想使用此查询:

select * from ClientHeaders where Client_id = "123";

如何使用 hector 的 slicequery 来做到这一点。

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

以下内容可以完成任务:

sliceQuery.setColumnFamily("ClientHeaders");
sliceQuery.setKey("123");
sliceQuery.setRange("", "", false, 5);
QueryResult<ColumnSlice<String, String>> result = sliceQuery.execute();

因为 UUID 是主键,所以 sliceQuery.setKey("123"); 适用于主键,有什么方法可以从非主键执行 where 子句功能吗?

最佳答案

为此,您必须使用 IndexedSlicesQuery

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();

关于java - Hector slicequery 'where' 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17059350/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com