【发布时间】:2009-10-19 15:26:41
【问题描述】:
我正在寻找一种有效的方法来索引和搜索 Lucene.Net 中的数字字段。 现在我只需要整数值。
我想按值范围搜索(在 x 和 y 之间,超过 x...)。现在我按原样索引数字并为两个值之间的每个值手动创建子句,但是当我搜索介于 1000 和以 5000 为例。我确信有更好的方法来做到这一点......
【问题讨论】:
标签: .net lucene.net numeric-ranges
我正在寻找一种有效的方法来索引和搜索 Lucene.Net 中的数字字段。 现在我只需要整数值。
我想按值范围搜索(在 x 和 y 之间,超过 x...)。现在我按原样索引数字并为两个值之间的每个值手动创建子句,但是当我搜索介于 1000 和以 5000 为例。我确信有更好的方法来做到这一点......
【问题讨论】:
标签: .net lucene.net numeric-ranges
用 RangeQuery 解决了这个问题。也可以使用以下语法的查询解析器来完成:
FieldName:[startValue TO endValue]
请记住,范围查询对字符串进行操作,因此您的数字必须在索引和查询中都进行规范化。就我而言,我使用 .ToString("00000") 将其标准化为 5 位数字。负数和小数需要特殊处理,但在我的情况下这不是问题。
【讨论】: