编程点滴.LUCENE保存检索表达式遇到的问题

在使用Lucene对数字类型字段进行索引

doc.Add(new NumericField("year", Field.Store.NO, true).SetIntValue(Convert.ToInt32(Year)));

检索的时候也要用数字范围检索

Query q=NumericRangeQuery.NewIntRange("year", 1995, 2005, true, true);

这个时候q的检索表达式是"year:[1995 TO 2005]".

这样看起来没啥问题,但是把它ToString()保存后,再取出生成Query

new QueryParser("", analyzer).Parse(q)

查看表达式还是"year:[1995 TO 2005]".

但数据已经查不出来了.

原来这种方法默认是使用TermRangeQuery进行检索的.

现在我只能在创建索引时继续使用文本类型保存数据,只在排序的时候使用数字类型排序.

希望高手提出解决方案.

posted @ 2010-12-27 17:14  寒 刚入门  阅读(307)  评论(0编辑  收藏  举报
刚入门的寒