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()
。