【问题标题】:Apply multiple filters on same column qualifier在同一列限定符上应用多个过滤器
【发布时间】:2013-01-17 06:49:50
【问题描述】:

在我的项目中,我有一个条件,我必须在同一列限定符上应用两个 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);

这样做有什么错误吗?这可能吗,在同一个限定符上应用两个过滤器?有其他解决方案吗?

提前致谢。

【问题讨论】:

  • 您的过滤器设置没问题。您能否进一步详细说明问题所在?请注意,如果满足给定条件,SingleColumnValueFilter 将返回一行的所有列。即:一行的单列值决定是否返回整行。如果您只想检索那些满足条件的列,请改用ValueFilter

标签: hbase qualifiers


【解决方案1】:

解决上述问题的一个好方法是使用 RegexStringComparator。

创建具有所需匹配项的 RegexStringComparator 并将其与 SingleColumnValueFilter 一起使用。

【讨论】:

  • 你能举个例子吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-14
相关资源
最近更新 更多