- DependentColumnFilter:
- 一种允许用户指定一个参考列或引用列来过滤其他列的过滤器,过滤的原则是基于参考列的时间戳来进行筛选
1,语法
DependentColumnFilter (‘family’, ‘qualifier’, boolean, compareoperator, ‘value comparator’)
DependentColumnFilter (‘family’, ‘qualifier’, boolean)
DependentColumnFilter (‘family’, ‘qualifier’)
2.样例
scan ‘student’ {FILTER=>“DependentColumnFilter(‘contact’,‘mobile’,false,>=,‘binary:15813345678’)”}
*KeyOnlyFilter:
行键过滤器(KeyOnlyFilter)
只需要将结果中KeyValue实例的键返回,不需要返回实际的数据。
filter = “KeyOnlyFilter()”; 有数据
*FirstKeyOnlyFilter:首次行键过滤器(FirstKeyOnlyFilter)只需要访问一行中的第一列。该过滤器常用在行数统计。filter = “FirstKeyOnlyFilter()”; 有数据
*ColumnCountGetFilter:列计数过滤器(ColumnCountGetFilter)限制每行最多取回多少列。设置ColumnCountGetFilter(int n),它不适合扫描操作,更适合get()。
filter = “ColumnCountGetFilter(3)”;
*SingleColumnValueFilter
1,语法
SingleColumnValueFilter (‘family’, ‘qualifier’, compare operator, ‘comparator’, filterIfColumnMissing_boolean, latest_version_boolean)
SingleColumnValueFilter (‘family’, ‘qualifier’, compare operator, ‘comparator’)
//如果 filterIfColumnMissing 标志设为真,如果该行没有指定的列,那么该行的所有列将不发出。缺省值为假。
//如果setLatestVersionOnly 标志设为假,将检查此前的版本。缺省值为真
2.样例
scan ‘student’,{FILTER=>“SingleColumnValueFilter(‘persionInfo’,‘address’,=,‘binary:china’) AND SingleColumnValueFilter(‘persionInfo’,‘name’,=,‘binary:zhangsan’) AND PageFilter(2)”} //根据具体的列进行匹配;
*PrefixFilter
scan ‘student’ {LIMIT=>10,FILTER=>“PrefixFilter(‘00’)”} 行建的前缀匹配
*SingleColumnValueExcludeFilter------->scan ‘test_ns:user’,{FILTER=>“SingleColumnValueExcludeFilter(‘contact’,‘mobile’,>=,‘binary:15833345678’) AND PageFilter(1)”}
*ColumnRangeFilter:取得二列这间的所有列数据
1,语法
ColumnRangeFilter (‘’, <minColumnInclusive_bool>, ‘’, <maxColumnInclusive_bool>)
2.样例:
scan ‘test_ns:user’,{FILTER=>“ColumnRangeFilter(‘mobile’,false,‘tel’,false) AND PageFilter(2)”}
*TimestampsFilter:时间戳过滤器(TimestampsFilter)
需要在扫描结果中对版本进行细粒度控制。一个版本是指一个列在一个特定时间的值。
filter = "TimestampsFilter (1435747469212, 1435738500459) ";
*FamilyFilter:列族过滤器(FamilyFilter)
filter = “FamilyFilter(=, ‘binary:base_info’)”; 有数据
filter = “FamilyFilter(=, ‘binary:extra_info’)”; 有数据
*QualifierFilter:字段过滤
filter = “QualifierFilter(=,‘substring:name’)”;
filter = “QualifierFilter(=,‘binary:name’)”;
filter = “(QualifierFilter(=,‘binary:name’) OR QualifierFilter(=,‘binary:age’))”;
*ColumnPrefixFilter:列前缀过滤器(ColumnPrefixFilter) 对列名称前缀进行匹配。
filter = “ColumnPrefixFilter (‘name’)”;有数据
filter = “ColumnPrefixFilter (‘age’)”;有数据
*RowFilter
scan ‘zy_comment’,{FILTER=>“RowFilter(=,‘substring:zhangsan’)”} rowkey中包含特定前缀的数据
*MultipleColumnPrefixFilter:多个列前缀过滤器(MultipleColumnPrefixFilter)
filter = “MultipleColumnPrefixFilter(‘name’,‘age’)”;有数据
*InclusiveStopFilter:包含结束的过滤器(InclusiveStopFilter)
开始行被包含在结果中,但终止行被排斥在外,使用这个过滤器,也可以将结束行包含在结果中。
filter = “InclusiveStopFilter(‘binary:baiyc_20150701_0016’)”;
*PageFilter
分页过滤器(PageFilter)
作用:对结果按行分页。 客户端需要记住上一次访问的row的key值。
filter = “PageFilter(12)”; 有数据
ValueFilter :字段值过滤器 ------->
filter = “ValueFilter (=, ‘binary:33’)”; 等号
filter = “ValueFilter (=, ‘binaryprefix:baiyc’)”; 前缀
filter = "ValueFilter (=, 'regexstring:baiyc2’)";匹配符
filter = “ValueFilter (=, ‘substring:aiyc’)”; 包含子串
filter = “(ValueFilter (=, ‘substring:aiyc’) OR ValueFilter (=, ‘binaryprefix:baiyc’))”; 包含子串
scan ‘student’,{COLUMNS=>[‘persionInfo:address’], FILTER=>“ValueFilter(=,‘substring:china’)”} 取列值为china的列,并只返回address的列
*ColumnPaginationFilter:
列分页过滤器(ColumnPaginationFilter) 可以对一行中所有列进行分页。
ColumnPaginationFilter(int limit,int offset),跳过所有偏移量小于offset的列,并包含之前所有偏移量在limit之前的列。
filter = “ColumnPaginationFilter(1,2)”;