如何使用LIKE in ROWID在HBase中搜索?

如何使用LIKE in ROWID在HBase中搜索?,hbase,Hbase,Hbase表的rowid的构造方式是,它的第一个子字符串是一个固定字符串,比如ABC,rest是变量。例如,我的rowid看起来像: ABC_12345 ABC_89778 ABC_64994 ... .. 我如何编写一个HBASE查询来使用一些行过滤器实现扫描我的表,如果我提供“ABC”,我将获得所有行 任何帮助都将不胜感激 谢谢 U您可以同时使用这两种方法,即使用RegexStringComparator过滤器进行扫描。大概是这样的: String regEx = "^ABC"; Filt

Hbase表的rowid的构造方式是,它的第一个子字符串是一个固定字符串,比如ABC,rest是变量。例如,我的rowid看起来像:

ABC_12345
ABC_89778
ABC_64994
...
..
我如何编写一个HBASE查询来使用一些行过滤器实现扫描我的表,如果我提供“ABC”,我将获得所有行

任何帮助都将不胜感激

谢谢 U

您可以同时使用这两种方法,即使用RegexStringComparator过滤器进行扫描。大概是这样的:

String regEx = "^ABC";
Filter regExFilter = new RowFilter(CompareFilter.CompareOp.EQUAL, 
                        new RegexStringComparator(regEx));
Scan scan = new Scan();
scan.setFilter(regExFilter);
您可以同时使用这两种方法,即带有RegexStringComparator筛选器的扫描。大概是这样的:

String regEx = "^ABC";
Filter regExFilter = new RowFilter(CompareFilter.CompareOp.EQUAL, 
                        new RegexStringComparator(regEx));
Scan scan = new Scan();
scan.setFilter(regExFilter);

您也可以尝试SubstringComparator。 从文档中: 此比较器与SingleColumnValueFilter一起使用,用于基于给定列的值进行过滤。使用它来测试给定的子字符串是否出现在列中的单元格值中。比较不区分大小写。 只有相等或不相等的测试对该比较器有效

例如: 单列值过滤器scvf= 新的单列值过滤器col,CompareOp.EQUAL, 新的子字符串比较器substr


您也可以尝试SubstringComparator。 从文档中: 此比较器与SingleColumnValueFilter一起使用,用于基于给定列的值进行过滤。使用它来测试给定的子字符串是否出现在列中的单元格值中。比较不区分大小写。 只有相等或不相等的测试对该比较器有效

例如: 单列值过滤器scvf= 新的单列值过滤器col,CompareOp.EQUAL, 新的子字符串比较器substr


如何在HBase shell中实现。如何在HBase shell中实现。