【问题标题】:How to index numeric fields and search them by range in Lucene.Net?如何索引数字字段并在 Lucene.Net 中按范围搜索?
【发布时间】:2009-10-19 15:26:41
【问题描述】:

我正在寻找一种有效的方法来索引和搜索 Lucene.Net 中的数字字段。 现在我只需要整数值。

我想按值范围搜索(在 x 和 y 之间,超过 x...)。现在我按原样索引数字并为两个值之间的每个值手动创建子句,但是当我搜索介于 1000 和以 5000 为例。我确信有更好的方法来做到这一点......

【问题讨论】:

    标签: .net lucene.net numeric-ranges


    【解决方案1】:

    用 RangeQuery 解决了这个问题。也可以使用以下语法的查询解析器来完成:

    FieldName:[startValue TO endValue]
    

    请记住,范围查询对字符串进行操作,因此您的数字必须在索引和查询中都进行规范化。就我而言,我使用 .ToString("00000") 将其标准化为 5 位数字。负数和小数需要特殊处理,但在我的情况下这不是问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-23
      • 2012-02-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多