在使用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进行检索的.

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

希望高手提出解决方案.

相关文章:

  • 2021-09-09
  • 2022-12-23
  • 2021-10-27
  • 2022-12-23
  • 2021-12-14
  • 2021-05-13
猜你喜欢
  • 2021-11-11
  • 2021-10-01
  • 2021-12-22
  • 2022-01-29
  • 2022-02-06
  • 2021-05-22
  • 2021-05-25
相关资源
相似解决方案