2つのQualifierFiltersを使用してHBaseテーブルのスキャンをフィルタリングしたいと思います。特定の列'col_A'と(!)特定の他の列'col_B'を持つテーブルの行のみを取得したいことを意味します。
現在のアプローチは次のようになります。
FilterList filterList = new FilterList(FilterList.Operator.MUST_PASS_ALL);
Filter filter1 = new QualifierFilter(CompareOp.EQUAL, new BinaryComparator("col_A".getBytes()));
filterList.addFilter(filter1);
Filter filter2 = new QualifierFilter(CompareOp.EQUAL, new BinaryComparator("col_B".getBytes()));
filterList.addFilter(filter2);
Scan scan = new Scan();
scan.setFilter(filterList);
...
ResultScannerは、このスキャンからの結果を返しませんが、HBaseテーブルには、列「col_A」と「col_B」の両方を持つ行がいくつかあります。
filter1のみをスキャンに適用すると、すべてが正常に機能し、「col_A」を持つすべての行が取得されます。filter2のみをスキャンに適用する場合も同じです。'col_B'を持つすべての行を取得します。
これら2つのフィルターを組み合わせた場合にのみ、結果は得られません。
col_Aとcol_Bを持つテーブルから行のみを取得する正しい方法は何でしょうか?