在使用 Lucene.Net 的应用程序中,我有一个存储整数的数字字段。这些值的基数相当低(通常少于 20-30 个不同的值)。
我想对此字段进行分面搜索(使用SimpleFacetedSearch
来自 contrib 包),即我想要每个不同值的命中数。
目前,我将值的副本按原样存储在附加文本字段中,并在此文本字段上运行分面搜索。这将返回正确的结果。
但是,这是要走的路还是有一种特殊的方法可以对 NumericFields 进行分面搜索?
注意:由于基数较低,我可能会考虑将精度步长设置为 int.MaxValue,以便每个值只有一个术语。我想在这种情况下,我可以简单地对数字字段本身进行分面搜索并使用NumericUtils.PrefixCodedToInt()
. 这是正确的还是会有并发症?到目前为止,我的测试表明它运行良好。