Apache Lucene中的Precision步骤[请求评论以改进解决方案]



什么是Precision step

我是lucene的新手,在理解精度步进的概念时遇到了一些困难,用于数值字段和数值rangequery。在浏览了lucene文档和不同的stackoverflow问题之后,我得到了这个概念。现在我在这里分享我的理解和解释。我希望它能帮助其他人在快速和容易地理解精密步骤。这是可以讨论和纠正的。

请在此添加您的宝贵知识,帮助我们改进。

精密步

因为Lucene只处理字符串数据类型更精确。所有数据类型都转换为字符串,然后再进一步处理。对于数字字段和查询,lucene开发了一个数字的字符串操作。对数字串进行相应的处理和查询。这里使用精度步长/值来索引术语和查询优化。

精确步长是指在索引值的多少位之后开始一个新项的计数。

例如

。在32位int的情况下。精度步长为26将得到两项

32位本身和32-26=4位

同样精度步长为8将总共创建4项

  1. 32 its self
  2. 32-8 = 24
  3. 24-8 = 16
  4. 16-8 = 8

因此,如果精度步长越小,则索引中的精度越高,项数也越多。并且要匹配的最大项数将增加,从而改善结果。

较低精度步长值=>更高精度=>更多项=>增加匹配项=>改进结果

相关内容

最新更新