1.过滤器层次结构
过滤器层次结构的最底层是Filter接口和FilterBase抽象类,它们实现了过滤器的空壳和骨架
大部分过滤器直接继承自FilterBase,用户定义一个所需要的过滤器实例,同时把定义好的过滤器实例传递给Get或Scan实例:
setFilter(filter)
2比较运算符
继承自CompareFilter的过滤器比基类FilterBase多了一个compare()方法,它需要传入参数定义比较操作的过程。
3比较器
比较过滤器
行过滤器
Scan scan = new Scan();
scan.addColumn(Bytes.toBytes("colfam1"), Bytes.toBytes("col-0"));
Filter filter1 = new RowFilter(CompareFilter.CompareOp.LESS_OR_EQUAL,
new BinaryComparator(Bytes.toBytes("row-22")));
//精确匹配,只返回前22行
scan.setFilter(filter1);
ResultScanner scanner1 = table.getScanner(scan);
for (Result res : scanner1) {
System.out.println(res);
}
scanner1.close();
Filter filter2 = new RowFilter(CompareFilter.CompareOp.EQUAL,
new RegexStringComparator(".*-.5"));
//正则表达式匹配
scan.setFilter(filter2);
ResultScanner scanner2 = table.getScanner(scan);
for (Result res : scanner2) {
System.out.println(res);
}
scanner2.close();
Filter filter3 = new RowFilter(CompareFilter.CompareOp.EQUAL,
new SubstringComparator("-5"));
//子字符串匹配
scan.setFilter(filter3);
ResultScanner scanner3 = table.getScanner(scan);
for (Result res : scanner3) {
System.out.println(res);
}
scanner3.close();