Lucene中整数域上的范围刻面

Lucene中整数域上的范围刻面,lucene,lucene.net,Lucene,Lucene.net,正如标题所说,我希望在整数字段上有范围面 在文档中,它说:范围刻面LongRangeFaceCounts,DoubleRangeFaceCounts从提供的LongValuesSource计算动态数值范围的计数 我可以对任何数字类型使用longranceCounts或doubleRangeFaceCounts:double,decimal,long,float,但不能使用int,这很烦人 有人有从int字段获取范围方面的经验吗 谢谢您可以为int值字段获取LongValuesSource: (或

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

在文档中,它说:范围刻面
LongRangeFaceCounts
DoubleRangeFaceCounts
从提供的
LongValuesSource
计算动态数值范围的计数 我可以对任何数字类型使用longranceCounts或doubleRangeFaceCounts:
double
decimal
long
float
,但不能使用
int
,这很烦人

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


谢谢

您可以为int值字段获取LongValuesSource:


(或者,如果您愿意,可以使用DoubleValuesSource:)

您可以为int值字段获取LongValuesSource:


(或者,如果您愿意,可以使用DoubleValuesSource:)

多亏@femtoRgon的评论,我找到了
Lucene.net
的解决方案

DoubleRangeFaceCounts具有如下构造函数:

DoubleRangeFaceCounts(字符串字段,**ValueSource ValueSource,**FacetsCollector点击,参数DoubleRange[]范围)

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

Fx.:
new Int32FieldSource(definitionFacet.Key)
如果字段是int 或者
new DoubleFieldSource(definitionFacet.Key)
如果字段是双精度的,等等


事后看来,这是显而易见的,但一开始我并没有注意到这一点

多亏@femtoRgon的评论,我找到了一个针对
Lucene.net
的解决方案

DoubleRangeFaceCounts具有如下构造函数:

DoubleRangeFaceCounts(字符串字段,**ValueSource ValueSource,**FacetsCollector点击,参数DoubleRange[]范围)

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

Fx.:
new Int32FieldSource(definitionFacet.Key)
如果字段是int 或者
new DoubleFieldSource(definitionFacet.Key)
如果字段是双精度的,等等


事后看来,这是显而易见的,但一开始我没有注意到这一点

谢谢你的提示。我使用的是Lucene.net,似乎没有类似的方法。但是你的评论帮助我找到了一个解决方案。在Lucene.NET中,数字类型遵循.NET数字命名约定。因此,它将分别是
Int64ValueSource.FromInt32Field()
DoubleValueSource.FromInt32Field()
。感谢您提供此技巧。我使用的是Lucene.net,似乎没有类似的方法。但是你的评论帮助我找到了一个解决方案。在Lucene.NET中,数字类型遵循.NET数字命名约定。因此,它将分别是
Int64ValueSource.FromInt32Field()
DoubleValueSource.FromInt32Field()