get和sacn可以用过滤器。
1.FilterList
这是一个过滤器列表,可以指定FilterList.Operator.MUST_PASS_ALL(列表内的过滤器要全部满足,相当于与)和FilterList.Operator.MUST_PASS_ONE(列表的过滤器只要满足一项就行了,相当于或,这是默认)。list里面可以包含list。
Scan scan = new Scan();
scan.setStartRow("row0".getBytes());
scan.setStopRow("row9".getBytes());
FilterList list = new FilterList(FilterList.Operator.MUST_PASS_ALL);
SingleColumnValueFilter scvf = new SingleColumnValueFilter(
"f".getBytes(),"name".getBytes(), CompareOp.GREATER_OR_EQUAL, "name7".getBytes());
SingleColumnValueFilter scvf2 = new SingleColumnValueFilter(
"f".getBytes(),"name".getBytes(), CompareOp.LESS_OR_EQUAL, "name9".getBytes());
list.addFilter(scvf2);
list.addFilter(scvf);
scan.setFilter(list);
CompareOp是一个枚举类型,有等于,不等于,大于,大于或等于,小于,小于或等于,no operation。
2.SingleColumnValueFilter 值的过滤器
用于测试列值,有CompareOp的枚举类型,可以测试等于,不等于或范围。不用FilterList的话scan设置的Filter就是最后设置的那个。
Scan scan = new Scan();
scan.setStartRow("row0".getBytes());
scan.setStopRow("row9".getBytes());
SingleColumnValueFilter scvf = new SingleColumnValueFilter(
"f".getBytes(),"name".getBytes(), CompareOp.GREATER, "name2".getBytes());
scan.setFilter(scvf);
比较器:
1. RegexStringComparator 支持值比较的正则表达式。
Scan scan = new Scan();
scan.setStartRow("row0".getBytes());
scan.setStopRow("row