2013-01-17 3 views
2

내 프로젝트에서 동일한 열 한정자에 두 개의 SingleColumnValue 필터를 적용해야하는 조건이 있습니다. 두 필터는 열 한정자에 값 'A'또는 값 'B'가 포함되어 있는지 확인합니다. 그러나 필터가 작동하지 않는 것 같습니다.동일한 열 한정자에 여러 개의 필터 적용

FilterList filterList = new FilterList(Operator.MUST_PASS_ONE); 

SingleColumnValueFilter filter2 = new SingleColumnValueFilter(Bytes.toBytes("data"),    Bytes.toBytes("type"),CompareOp.EQUAL,Bytes.toBytes("A")); 
filter2.setFilterIfMissing(true); 
filterList.addFilter(filter2); 

SingleColumnValueFilter filter1 = new SingleColumnValueFilter(Bytes.toBytes("data"), Bytes.toBytes("type"), CompareOp.EQUAL, Bytes.toBytes("B")); filter1.setFilterIfMissing(true); 
filterList.addFilter(filter1); 

이렇게 실수가 있습니까? 동일한 qualifer에서 두 개의 필터를 적용하여 가능합니까? 다른 해결책이 있습니까?

미리 감사드립니다.

+1

필터 설정이 정상입니다. 문제가 무엇인지 자세히 설명해 주시겠습니까? 지정된 조건이 충족되면'SingleColumnValueFilter'는 행의 모든 ​​열을 반환합니다. 즉, 행의 단일 열 값은 전체 행을 반환할지 여부를 결정합니다. 조건을 만족하는 열을 검색하려면 대신 'ValueFilter'를 사용하십시오. –

답변

0

위에서 설명한 문제를 해결하는 좋은 방법은 RegexStringComparator를 사용하는 것입니다.

필요한 일치 항목이있는 RegexStringComparator를 만들고 SingleColumnValueFilter와 함께 사용합니다.