2009-10-19 38 views
3

我正在寻找一种有效的方式来索引和搜索Lucene.Net中的数值字段。 现在我的需求只是整数值。如何索引数值字段并在Lucene.Net中按范围进行搜索?

我想通过值的范围(x和y之间,大于x ...)进行搜索。现在,我将数字编入索引并为两个值之间的每个值手动创建子句,但当我搜索1000和1000之间的值时,它会快速生成很多子句并达到默认限制(1024) 5000,例如。我确信有更好的方法来做到这一点...

回答

6

用RangeQuery解决了它。它也可以与下面的语法查询分析器来完成:

FieldName:[startValue TO endValue] 

请记住,范围查询字符串上运行,所以你的号码都必须在索引和查询进行标准化。在我的情况下,我用.ToString(“00000”)标准化为5位数字。对于负数和小数必须进行特殊处理,但对我而言这不是问题。