Dav*_*ult 3 .net lucene.net numeric-ranges
我正在寻找一种在Lucene.Net中索引和搜索数字字段的有效方法.现在我的需要只是整数值.
我想按值的范围搜索(在x和y之间,大于x ...).现在我正在按原样索引数字,并为这两个值之间的每个值手动创建子句,但是当我搜索1000和1000之间的值时,它会快速生成大量子句并达到默认限制(1024).例如5000.我相信有更好的方法可以做到这一点......
使用RangeQuery解决了这个问题.它也可以使用以下语法使用查询解析器完成:
FieldName:[startValue TO endValue]
Run Code Online (Sandbox Code Playgroud)
请记住,范围查询对字符串进行操作,因此必须在索引和查询中对数字进行规范化.在我的情况下,我用.ToString("00000")标准化为5位数.对于负数和小数,需要特殊处理,但在我的情况下这不是问题.