Specify multiple filters in hbase

priya picture priya · Aug 26, 2013 · Viewed 10.5k times · Source

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.

Answer

Hari Menon picture Hari Menon · Aug 26, 2013

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);