我在 FilterLists 的层次结构中添加了多个行过滤器,它允许我仅从 HBase 表中过滤我需要的内容,如下所示:
FilterList list = new FilterList(FilterList.Operator.MUST_PASS_ONE);
FilterList uidList = new FilterList(FilterList.Operator.MUST_PASS_ALL);
if(term.length()>longSize){
long highValue = Long.parseLong(term.substring(longSize));
uidList.addFilter(new RowFilter(CompareFilter.CompareOp.GREATER_OR_EQUAL,
new BinaryComparator(Bytes.add(prefix, Bytes.toBytes(addLongPadding(lowValue))))));
uidList.addFilter(new RowFilter(CompareFilter.CompareOp.LESS_OR_EQUAL,
new BinaryComparator(Bytes.add(prefix, Bytes.toBytes(addLongPadding(highValue))))));
} else
uidList.addFilter(new RowFilter(CompareFilter.CompareOp.EQUAL,
new BinaryComparator(Bytes.add(prefix, Bytes.toBytes(addLongPadding(lowValue))))));
list.addFilter(uidList);
这只是一个例子,在list
. 有没有办法可以使用FilterList
运算符来否定过滤器?对于这个例子,我需要过滤所有不在lowValue
and之间的行,highValue
而 else 分支的行是NOT_EQUAL
我的 value( lowValue == highValue
)。
我知道运营商是基于的NAND
,NOR
所以在技术上它是可能的,但我不知道如何。