Lucene.Net 2.9.2.2 Invalid shift value in prefixCoded string (is encoded value really an INT?) 异常排查处理

问题:应用的一个Lucene.Net搜索程序, Dll从2.4升级到2.9.2.2, 发生异常:

Exception: System.FormatException Message: Invalid shift value in prefixCoded string (is encoded value really an INT?)

排查:跟踪代码发现 

searcher.Search(wq, new Sort("xxxx", false))

生成的fiele

fields = new SortField[]{new SortField(field, SortField.AUTO, reverse)};

而在SortField类中,注释 

[Obsolete("Please specify the exact type, instead. Especially, guessing does not work with the new NumericField type.")]

public const int AUTO = 2;

 

修改: searcher.Search(wq, new Sort(new SortField("xxxx", 6, false)))

备注: xxxx字段为long类型, 其他具体参见 SortField.cs

posted @ 2010-09-25 11:50  wiseshrek  阅读(1349)  评论(0编辑  收藏  举报