1

嘿,

这个问题与SingleColumnValueFilter not return proper number of rows非常相似。

我使用四个带有运算符 EQUAL 的 SingleColumnValueFilter,并将它们添加到具有运算符 MUST_PASS_ONE 的 FilterList 中。结果的数量与不设置过滤器列表相同。要比较的值是一个应该正确的 byte[],因为我只是存储了以前结果中的值。(这是一个 IP 地址,我在检索数据时转换为 InetAddress,new InetAddress(value as byte[]),对于所描述的查询,我只调用 InetAddress.getAddress,它返回一个 byte[])

你有什么想法可能是什么问题?我是否使用错误的过滤器?

编辑:

我还将查询检索到的原始值用作 SingleColumnValueFilter 的值,结果没有差异,因此 byte[] 内容不会是问题。

4

1 回答 1

0

我想我可以自己给出答案,抱歉之前没有调试和检查所有的hbase代码。

我刚刚检查了比较算法的实现(按字典顺序),因此我意识到长度没有被考虑在内,尽管我认为它会被零填充;不幸的是,事实并非如此。

唯一合理的选择是创建一个自定义比较器(例如,请参阅如何在 HBase 上将自定义比较器与 SingleColumnValueFilter 一起使用?

于 2012-07-02T14:05:47.720 回答