在休眠搜索中,索引时的整数值似乎存储为字符

时间:2017-02-18 09:08:28

标签: java spring hibernate-search

我有一个带

的基类
@Field
protected Integer group;

on hibernate 5.6.0.Final

我将对象值设置为值0或1.但是当我使用luke观察索引时,它总是显示4行存储为h, p, x ,

我的测试实际上工作正常,当我在其中一个组中添加带范围查询的MustJunction时,我得到了正确的过滤结果。也许我在解释卢克错了......?

1 个答案:

答案 0 :(得分:1)

默认情况下,Hibernate Search会将数值存储为Lucene中的数字字段。这意味着即使值按原样存储在索引中,您的索引中也不会有“0”字符串或“1”字符串,而是一些二进制值。

但即使考虑到这一点,您可能会惊讶地看到相同源值的不同二进制编码。这是一个优化:记住你正在查看倒排索引的内容,其目的不是查找​​给定文档的值,而是查找与特定值匹配的文档。

如果您对数字索引在Lucene中的工作方式感兴趣,可以查看IntField javadoc。但是既然你查询工作,那真的只是出于好奇:)