在休眠搜索中,当索引似乎存储为字符时的整数值
In hibernate search Integer value when indexed appears to be stored as characters
我有一个基础class
@Field
protected Integer group;
休眠 5.6。0.Final
我将我的对象值设置为值 0 或 1。但是当我使用 luke 观察索引时,它总是显示 4 个存储行作为 h, p, x ,
我的测试实际上工作正常,当我在其中一个组上添加带有范围查询的 MustJunction 时,我得到了正确过滤的结果。可能我对 luke 的理解有误...?
Hibernate Search 默认将数值存储为 Lucene 中的数字字段。这意味着即使该值按原样存储在索引中,您的索引中也不会有“0”字符串或“1”字符串,而是一些二进制值。
但即使考虑到这一点,您可能会惊讶地看到相同源值的不同二进制编码。这是一种优化:请记住,您正在查看倒排索引的内容,其目的不是查找给定文档的值,而是查找与特定值匹配的文档。
如果您对 Lucene 中数字索引的工作原理感兴趣,可以查看 IntField javadoc。但是既然你查询工作,那真的只是出于好奇:)
我有一个基础class
@Field
protected Integer group;
休眠 5.6。0.Final
我将我的对象值设置为值 0 或 1。但是当我使用 luke 观察索引时,它总是显示 4 个存储行作为 h, p, x ,
我的测试实际上工作正常,当我在其中一个组上添加带有范围查询的 MustJunction 时,我得到了正确过滤的结果。可能我对 luke 的理解有误...?
Hibernate Search 默认将数值存储为 Lucene 中的数字字段。这意味着即使该值按原样存储在索引中,您的索引中也不会有“0”字符串或“1”字符串,而是一些二进制值。
但即使考虑到这一点,您可能会惊讶地看到相同源值的不同二进制编码。这是一种优化:请记住,您正在查看倒排索引的内容,其目的不是查找给定文档的值,而是查找与特定值匹配的文档。
如果您对 Lucene 中数字索引的工作原理感兴趣,可以查看 IntField javadoc。但是既然你查询工作,那真的只是出于好奇:)