我在co
列中保存了大文字内容,我想搜索列co
是否包含特定字词,就像我们在RDBMS
中所做的那样,例如:where { {1}}与co
类似,要实现这一点,我应该编写任何过滤器还是%test%
减少?有人可以举例说明如何实现这个目标吗?
答案 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将查看表中列的每个实例,因此性能不会很高。