Lucene中整数字段的范围构面

问题描述 投票:0回答:2

因此,正如标题所说,我希望在整数字段上具有范围构面。

在文档中说:刻面LongRangeFacetCountsDoubleRangeFacetCounts从提供的LongValuesSource计算动态数值范围的计数我可以对任何数字类型使用LongRanceFacetCounts或DoubleRangeFacetCounts:doubledecimallongfloat,但不能使用int,这很烦人。

有人从int字段获取范围方面有经验吗?

谢谢

lucene lucene.net
2个回答
1
投票

您可以获取一个Int值字段的LongValuesSource:LongValuesSource.fromIntField

(或者,如果愿意,可以使用DoubleValuesSource:DoubleValuesSource.fromIntField


0
投票

由于@femtoRgon的评论,我找到了Lucene.net的解决方案。

DoubleRangeFacetCounts具有这样的构造函数:

DoubleRangeFacetCounts(string field, **ValueSource valueSource,** FacetsCollector hits, params DoubleRange[] ranges)

valueSource参数在这里很有趣,因为我们可以传递该类的不同实现。

Fx .: new Int32FieldSource(definitionFacet.Key),如果该字段是一个整数或new DoubleFieldSource(definitionFacet.Key)(如果该字段为双精度等)

事后看来很明显,但起初我没有注意到

© www.soinside.com 2019 - 2024. All rights reserved.