【发布时间】:2013-01-17 06:49:50
【问题描述】:
在我的项目中,我有一个条件,我必须在同一列限定符上应用两个 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);
这样做有什么错误吗?这可能吗,在同一个限定符上应用两个过滤器?有其他解决方案吗?
提前致谢。
【问题讨论】:
-
您的过滤器设置没问题。您能否进一步详细说明问题所在?请注意,如果满足给定条件,
SingleColumnValueFilter将返回一行的所有列。即:一行的单列值决定是否返回整行。如果您只想检索那些满足条件的列,请改用ValueFilter。
标签: hbase qualifiers