2012-07-02 78 views
0

HY,SingleColumnValueFilter对结果没有任何影响

这个问题是非常相似SingleColumnValueFilter not returning proper number of rows

我使用四个SingleColumnValueFilter的w /运算符EQUAL,并将它们添加到运算符为MUST_PASS_ONE的FilterList。结果的数量与设置FilterList的w/o相同。要比较的值是一个字节[],应该是正确的,因为我只是存储以前结果中的值。 (它是一个IP地址,我转换为InetAddress,新InetAddress(值为字节[]),当检索数据时,对于描述的查询,我只是调用InetAddress.getAddress返回一个字节[])

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

编辑:

我也使用查询用作SingleColumnValueFilter值检索到的原始值,并且有一个在结果没有差别,因此,字节[]的内容不能是问题所在。

回答

0

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

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

唯一合理的选择是创建一个自定义的比较(例如,见How do you use a custom comparator with SingleColumnValueFilter on HBase?

+0

对不起,这没有任何意义,我(我想我做的不够有关HBase的)。辞典比较如何影响EQUALS?我可以看到它的影响,LESS,GREATER(特别是如果你比较字符串版本的数字),但它应该不会对等于...的影响,请你解释一下吗? – hba

+0

我有两个不同长度的字节[]。我调试了代码,发现比较算法在达到较短的长度时返回,忽略了较长字节[]的其余部分,就好像它不在那里一样。并且返回的值不是预期值(应该是'false'),我希望我没有记错。 (如果我没有弄错,那么当时使用的版本是0.92.1)我可以再检查一次,并在几天后回来......可能还会有不幸的测试数据! – divadpoc

+0

非常感谢@divadpoc,这有点澄清。我患有与您的问题相同的症状......但不确定问题是否相关。 – hba

相关问题