HBASE 根据row key 查询 注:忽略row key 大小写

木木水夕 2013-10-15 11:52:59
项目中刚开始用hbase,有一些问题不甚明白。求教各位大仙。
如题,:htable中存在如下记录:row key 为:153299:INFO:1381788000000
现在想实现:页面中输入 infO Info INFo 等关键字都能查询出所有忽略大小写的记录。

不知道说的是否明白,请教了。。先谢过。。。
...全文
488 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
木木水夕 2013-10-18
  • 打赏
  • 举报
回复
已经搞定,问题描述补充如下。 row key 为:153299:INFO:1381788000000 解释:应用id :153299 关键字:INFO 时间:1381788000000 页面中会根据以上三项条件到HBASE中检索,将以上三个条件拼装成 row key 格式,进行检索(注hbase中row key 以字典顺序排序),另外要求关键字查询时忽略大小写。 解决方法: 1.按关键字查询,使用RegexStringComparator 可以忽略大小写 2.将StartRow设置为大写,StopRow设置为小写(字典顺序大写在前,小写在后)

RowFilter rowFilter1 = new RowFilter(CompareFilter.CompareOp.EQUAL, new RegexStringComparator("(?i)"+paramObj.getAppId()+":"));
				mainFilterList.addFilter(rowFilter1);
				mainFilterList.addFilter(pageFilter);
				scan.setFilter(mainFilterList);
				scan.setStartRow(Bytes.toBytes(Bytes.toString(scan.getStartRow()).toUpperCase()));
				scan.setStopRow(Bytes.toBytes(Bytes.toString(scan.getStopRow()).toLowerCase()));
木木水夕 2013-10-16
  • 打赏
  • 举报
回复
引用 2 楼 yetaodiao 的回复:
找找有没有类似filtr这样的
没有发现,一会儿在查查
  • 打赏
  • 举报
回复
找找有没有类似filtr这样的
木木水夕 2013-10-15
  • 打赏
  • 举报
回复
我猜想应该有一个类似于:ignoreCase 的方法,但是没有找到,试了几个rowfilter相关的过滤器没式出来。。。

25,985

社区成员

发帖
与我相关
我的任务
社区描述
高性能WEB开发
社区管理员
  • 高性能WEB开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧