如何在hbase中搜索像'%test%'这样的列值

时间:2013-11-19 07:21:16

标签: hadoop hbase

我在co列中保存了大文字内容,我想搜索列co是否包含特定字词,就像我们在RDBMS中所做的那样,例如:where { {1}}与co类似,要实现这一点,我应该编写任何过滤器还是%test%减少?有人可以举例说明如何实现这个目标吗?

1 个答案:

答案 0 :(得分:1)

您可以执行类似

的操作
RegexStringComparator comp = new RegexStringComparator(".test.");   // or (\W|^)test(\W|$) if you want complete words only

SubstringComparator comp = new SubstringComparator("test");   

然后

SingleColumnValueFilter filter = new SingleColumnValueFilter(
    Bytes.toBytes("COLUMN_FAMILY_NAME"),
    Bytes.toBytes("co"),
    CompareOp.EQUAL,
    comp
    );
scan.setFilter(filter);

请注意,由于HBase将查看表中列的每个实例,因此性能不会很高。