堆栈信息如下
System.IndexOutOfRangeException: 索引超出了数组界限。
在 Lucene.Net.Search.AnonymousClassIntParser1.ParseInt(String val)
在 Lucene.Net.Search.FieldCacheImpl.IntCache.CreateValue(IndexReader reader, Entry entryKey)
在 Lucene.Net.Search.FieldCacheImpl.Cache.Get(IndexReader reader, Entry key)
在 Lucene.Net.Search.FieldCacheImpl.GetInts(IndexReader reader, String field, IntParser parser)
在 Lucene.Net.Search.FieldCacheImpl.IntCache.CreateValue(IndexReader reader, Entry entryKey)
在 Lucene.Net.Search.FieldCacheImpl.Cache.Get(IndexReader reader, Entry key)
在 Lucene.Net.Search.FieldCacheImpl.GetInts(IndexReader reader, String field, IntParser parser)
在 Lucene.Net.Search.FieldCacheImpl.GetInts(IndexReader reader, String field)
判断
这个错误很常见,一般都是数组引起的,所以可以很容易定位到lucene代码,在FieldCache.cs中的val[0],说明输入可能为null或者string.empty:
public virtual int ParseInt(System.String val) { int shift = val[0