You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@hbase.apache.org by Davis <da...@gmail.com> on 2012/05/02 15:22:58 UTC

Multiple filterlist

Is there a way to add multiple filter list to a scan object. 
ie,
scan.setFilter(Filterlist1);
scan.setFilter(Filterlist2);
scan.setFilter(Filterlist3);
Where Filterlist1,Filterlist2 are objects of FilterList and it contains
combination of filters like  ColumnPrefixFilter,ValueFilter.

Or in another words....

I have a combination of ColumnPrefixFilter and ValueFilter in filterlist1 for
column one and another combination of ColumnPrefixFilter and ValueFilter in
filterlist2 for column two. i want to combine these two and get result in one
shot...

Can ny1 help???


Re: Multiple filterlist

Posted by Davis <da...@gmail.com>.
FilterList listOfFilters = new FilterList (FilterList.Operator.MUST_PASS_ALL);
FilterList listOfFilters1 = new FilterList (FilterList.Operator.MUST_PASS_ALL);
FilterList listOfFilters2 = new FilterList (FilterList.Operator.MUST_PASS_ALL);
           
SingleColumnValueFilter SingleFilter1 = new
SingleColumnValueFilter(Bytes.toBytes("cf"),
Bytes.toBytes("country"), CompareOp.EQUAL,
Bytes.toBytes("USA"));
listOfFilters.addFilter(SingleFilter1);
            
ValueFilter VF1= new ValueFilter (CompareOp.EQUAL, 
new SubstringComparator("ABC"));
ColumnPrefixFilter CF1= new ColumnPrefixFilter(Bytes.toBytes("name"));
listOfFilters1.addFilter(CF1);
listOfFilters1.addFilter(VF1);
listOfFilters.addFilter(listOfFilters1);

ValueFilter VF2= new ValueFilter (CompareOp.EQUAL, 
new SubstringComparator("ED"));
ColumnPrefixFilter CF2= new ColumnPrefixFilter (Bytes.toBytes("CRS"));
listOfFilters2.addFilter(CF2);
listOfFilters2.addFilter(VF2);
listOfFilters.addFilter(listOfFilters2);

When i do a combibation of SingleFilter1 and listOfFilters1
 the result is correct, same way the combination of 
SingleFilter1 and listOfFilters2 is returing correct result.
But when all the three is combined im not getting any result..

Is it the problem with multiple ColumnPrefixFilter??? 
Value "ABC" exist in name.0 and value "ED" exist in CRS.0 and it is in
the same row under same Column Family.




Re: Multiple filterlist

Posted by shashwat shriparv <dw...@gmail.com>.
You can add a filter list to a filter list.

                FilterList fl=new FilterList();
                FilterList fl1=new FilterList();
                fl1.addFilter(fl);


On Wed, May 2, 2012 at 7:27 PM, Davis <da...@gmail.com> wrote:

> Guys i understand this... But my question i want to add multiple
> filterlists...
> Something like this
>
> FilterList list1 = new FilterList(FilterList.Operator.MUST_PASS_ONE);
> SingleColumnValueFilter filter1 = new SingleColumnValueFilter(
>        cf,
>        column,
>        CompareOp.EQUAL,
>        Bytes.toBytes("my value")
>        );
> list.add(filter1);
>
> FilterList list2 = new FilterList(FilterList.Operator.MUST_PASS_ONE);
> SingleColumnValueFilter filter2 = new SingleColumnValueFilter(
>        cf,
>        column,
>        CompareOp.EQUAL,
>        Bytes.toBytes("my value")
>        );
> list.add(filter2);
>
> scan.setFilter(list1);
> scan.setFilter(list2);
>
>


-- 


∞
Shashwat Shriparv

Re: Multiple filterlist

Posted by Davis <da...@gmail.com>.
Guys i understand this... But my question i want to add multiple filterlists...
Something like this

FilterList list1 = new FilterList(FilterList.Operator.MUST_PASS_ONE);
SingleColumnValueFilter filter1 = new SingleColumnValueFilter(
 	cf,
 	column,
 	CompareOp.EQUAL,
 	Bytes.toBytes("my value")
 	);
list.add(filter1);

FilterList list2 = new FilterList(FilterList.Operator.MUST_PASS_ONE);
SingleColumnValueFilter filter2 = new SingleColumnValueFilter(
 	cf,
 	column,
 	CompareOp.EQUAL,
 	Bytes.toBytes("my value")
 	);
list.add(filter2);

scan.setFilter(list1);
scan.setFilter(list2);


Re: Multiple filterlist

Posted by shashwat shriparv <dw...@gmail.com>.
FilterList list = new FilterList(FilterList.Operator.MUST_PASS_ONE);
SingleColumnValueFilter filter1 = new SingleColumnValueFilter(
	cf,
	column,
	CompareOp.EQUAL,
	Bytes.toBytes("my value")
	);
list.add(filter1);
SingleColumnValueFilter filter2 = new SingleColumnValueFilter(
	cf,
	column,
	CompareOp.EQUAL,
	Bytes.toBytes("my other value")
	);
list.add(filter2);
scan.setFilter(list);


On Wed, May 2, 2012 at 7:00 PM, Simon Gilliot <
simon.gilliot@adthink-media.com> wrote:

> Hi,
>
> A FilterList is what you need.
>
> You can use only once scan.setFilter(), but you can pass it a filterList
> which contains numerous filters (and other filterLists)...
>
>
> http://hbase.apache.org/apidocs/org/apache/hadoop/hbase/filter/FilterList.html
>
> Le mercredi 02 mai 2012 à 13:22 +0000, Davis a écrit :
> > Is there a way to add multiple filter list to a scan object.
> > ie,
> > scan.setFilter(Filterlist1);
> > scan.setFilter(Filterlist2);
> > scan.setFilter(Filterlist3);
> > Where Filterlist1,Filterlist2 are objects of FilterList and it contains
> > combination of filters like  ColumnPrefixFilter,ValueFilter.
> >
> > Or in another words....
> >
> > I have a combination of ColumnPrefixFilter and ValueFilter in
> filterlist1 for
> > column one and another combination of ColumnPrefixFilter and ValueFilter
> in
> > filterlist2 for column two. i want to combine these two and get result
> in one
> > shot...
> >
> > Can ny1 help???
> >
>
>
>


-- 


∞
Shashwat Shriparv

Re: Multiple filterlist

Posted by Simon Gilliot <si...@adthink-media.com>.
Hi,

A FilterList is what you need.

You can use only once scan.setFilter(), but you can pass it a filterList
which contains numerous filters (and other filterLists)...

http://hbase.apache.org/apidocs/org/apache/hadoop/hbase/filter/FilterList.html

Le mercredi 02 mai 2012 à 13:22 +0000, Davis a écrit :
> Is there a way to add multiple filter list to a scan object. 
> ie,
> scan.setFilter(Filterlist1);
> scan.setFilter(Filterlist2);
> scan.setFilter(Filterlist3);
> Where Filterlist1,Filterlist2 are objects of FilterList and it contains
> combination of filters like  ColumnPrefixFilter,ValueFilter.
> 
> Or in another words....
> 
> I have a combination of ColumnPrefixFilter and ValueFilter in filterlist1 for
> column one and another combination of ColumnPrefixFilter and ValueFilter in
> filterlist2 for column two. i want to combine these two and get result in one
> shot...
> 
> Can ny1 help???
>