代码之家  ›  专栏  ›  技术社区  ›  David Thibault

如何在lucene.net中索引数字字段并按范围搜索它们?

  •  3
  • David Thibault  · 技术社区  · 16 年前

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

    我想按值的范围搜索(在x和y之间,大于x…)。现在,我正在按原样对数字进行索引,并手动为两个值之间的每个值创建子句,但是当我搜索1000到5000之间的值时,它会快速生成许多子句并达到默认限制(1024)。我相信有更好的方法…

    1 回复  |  直到 16 年前
        1
  •  6
  •   David Thibault    16 年前

    用rangequery解决了这个问题。也可以使用查询分析器使用以下语法来完成此操作:

    FieldName:[startValue TO endValue]
    

    请记住,范围查询对字符串进行操作,因此必须在索引和查询中对数字进行规范化。在我的例子中,我使用.toString(“00000”)标准化为5位数字。负数和小数需要特殊处理,但在我的例子中这不是问题。

    推荐文章