Is there a way to specify multiple filters during a scan? For example - Specify both a ColumnFamilyFilter
and RowFilter
?
Filter rowFilter =
new RowFilter(CompareFilter.CompareOp.EQUAL, new RegexStringComparator(
rowFilterString));
Scan s = new Scan();
s.setFilter(rowFilter);
I wanted to also add a ColumnFilter
to s
. But it obviously overrides the latest filter.
You have to create a FilterList object, and add all the filters you want to that, and set this FilterList
object as the filter. You can either use the constructor or use the addFilter()
method to add filters to the filter list.
FilterList filterList = new FilterList();
filterList.addFilter(new RowFilter(...));
filterList.addFilter(new ColumnFilter(...));
Scan s = new Scan();
s.setFilter(filterList);
if you are adding multiple filters then do remember that by default filterlist uses
FilterList.Operator.MUST_PASS_ALL
which means all filter must be passed (AND condition). Use
FilterList.Operator.MUST_PASS_ONE
if you want to apply OR condition for filters.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With