我有一个用例,我想要3级复合键。例如rollnumber:class:friendsrollnumber
我想查询“获取特定卷号和类的所有朋友”
我在网上找不到足够的例子来同时使用复合键和范围扫描。
目前,我正在做以下工作。
byte[]rowkey = Bytes.add(Bytes.tobytes("myrollnumber"),Bytes.tobytes("myClass"),Bytes.tobytes("myFriendsRollNumber"))
这是我形成行键的方式。它会基于myrollnumber和myclass选择区域服务器吗?如果不是,我怎么做?
另外,对于距离扫描,正确的使用方法是什么。我是这样做的。我还在写代码的过程中,所以还没有测试它。
Scan s = new Scan();
Filter f = New PrefixFilter(Bytes.tobytes("myrollnumber"),Bytes.tobytes("class"))
s.setFilter(f)
按照我的要求,上述扫描方式正确吗?
另外,如何从扫描仪获取rowkey的各个部分?
2条答案
按热度按时间7uzetpgm1#
试试这个:
kx1ctssn2#
根据您的要求,您可以使用扫描的开始-停止行功能。你不需要过滤器。
使用此扫描,您将获得以search\u rollnumbermyclass开始的所有行。我不确定您是否使用:在您的rowkey中。但我认为如果rollnumber和class都表示为整数,您应该这样做。