1
我试图在HBase中实现类似搜索引擎的功能。除了这个想法有多好(找出原因),我需要支持浮点值的“范围查询”。创建一个倒排索引是默认的方法,将浮点值映射到单独的数据结构中的行键。但是,为了使它成为索引,我需要能够从范围的低点发出扫描(至少,这是我现在的理论)。HBase中二级浮点索引的排序顺序
由于HBase按字节数组排序,使用浮点开始行键将不会获得可用的索引,只要浮点数字节表示中的第一位为负值时为1和0为正值(这是超出浮动值顺序)。因此,我对如何创建此索引感到迷茫。
我对此采取了一种愚蠢的做法,还是会让以下某种工作更好?
转换浮动点整数值,一前一小数点后的二人:
BigDecimal[] doubleValue =
new BigDecimal((Double) value).divideAndRemainder(BigDecimal.ONE);
byte[] valueBytes = new byte[16];
System.arraycopy(Bytes.toBytes(doubleValue[0].longValue()), 0, valueBytes, 0, 8);
System.arraycopy(Bytes.toBytes(doubleValue[1].longValue()), 0, valueBytes, 8, 8);
不知何故说服HBase的使用自定义的比较器的排按键(不知道如何做到这一点)。
该实现似乎比我的简单,感谢找到:) – akaIDIOT