在同一列限定符上应用多个过滤器

时间:2013-01-17 06:49:50

标签: hbase qualifiers

在我的项目中,我有一个条件,我必须在同一列限定符上应用两个SingleColumnValue过滤器。这两个过滤器用于检查列限定符是否包含值“A”或值“B”。但是,过滤器似乎不起作用。

FilterList filterList = new FilterList(Operator.MUST_PASS_ONE);

SingleColumnValueFilter filter2 = new SingleColumnValueFilter(Bytes.toBytes("data"),               Bytes.toBytes("type"),CompareOp.EQUAL,Bytes.toBytes("A"));
filter2.setFilterIfMissing(true);
filterList.addFilter(filter2);

SingleColumnValueFilter filter1 = new SingleColumnValueFilter(Bytes.toBytes("data"), Bytes.toBytes("type"), CompareOp.EQUAL,  Bytes.toBytes("B"));    filter1.setFilterIfMissing(true);
filterList.addFilter(filter1);

这样做有什么不对吗?这是可能的,在同一个qualifer上应用两个过滤器吗?有没有其他解决方案?

提前致谢。

1 个答案:

答案 0 :(得分:0)

解决上述问题的一个好方法是使用RegexStringComparator。

创建一个包含所需匹配项的RegexStringComparator,并将其与SingleColumnValueFilter一起使用。