java - SingleColumnValueFilter 对结果没有影响

标签 java hbase

嘿,

这个问题与 SingleColumnValueFilter not returning proper number of rows 非常相似.

我使用四个带有运算符 EQUAL 的 SingleColumnValueFilter,并将它们添加到带有运算符 MUST_PASS_ONE 的 FilterList 中。结果数与未设置 FilterList 的结果数相同。要比较的值是一个 byte[] ,它应该是正确的,因为我只是存储以前结果中的值。 (这是一个 IP 地址,我在检索数据时将其转换为 InetAddress、new InetAddress(value as byte[]),对于所描述的查询,我只需调用 InetAddress.getAddress 它会返回一个 byte[])

您知道可能出现什么问题吗?我是否使用了错误的过滤器?

编辑:

我还使用了查询检索到的原始值作为 SingleColumnValueFilter 的值,结果没有差异,因此 byte[] 内容不可能是问题。

最佳答案

我想我自己可以给出答案,抱歉之前没有调试和检查所有 hbase 代码。

我刚刚检查了比较算法的实现(按字典顺序排列),因此我意识到没有考虑长度,尽管我认为它会用零填充;不幸的是事实并非如此。

唯一合理的选择是创建一个自定义比较器(例如参见How do you use a custom comparator with SingleColumnValueFilter on HBase?)

关于java - SingleColumnValueFilter 对结果没有影响,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11291756/

相关文章:

Java、Spring 数据。列表映射类型的映射实体字段

java - Crudrepository/以只读方式将其他表中的单个字段连接到实体

rest - HBase 和 Elasticsearch 集成,如 MongoDB River

java - hbase 扫描仪 .next() 返回 null

hadoop - PIG - HBASE - 类型转换值

java - 来自 OSGi 包的相对路径

java - 如何从 Firestore 数据库检索特定数据?

java - ZipOutputStream 提示 FileNotFoundException

Hbase shell 命令

hadoop - HBASE 安装 - 获取 ZOOKEPER 相关错误