2010-02-22 55 views
1

我正在使用Lucene.net 2.4的客户端网站的程序化使用的查询:布尔查询,模糊查询,不同的重量,前缀等....算术运算导致与Lucene.Net的溢出2.4

有时候,很随意,我有以下错误:

算术运算导致在Lucene.Net.Util.PriorityQueue.Initialize(的Int32 MAXSIZE) 在Lucene.Net.Search.FuzzyQuery.ScoreTermQueue溢出在Lucene.Net.Search.FuzzyQuery.Rewrite(IndexReader reader) 上的..在Lucene.Net.Search.BooleanQuery.Rewrite(的IndexReader读取器) 在Lucene.Net.Search.BooleanQuery.Rewrite(的IndexReader读取器) 在Lucene.Net.Search.BooleanQuery.Rewrite(的IndexReader读取器) 在Lucene.Net .Search.BooleanQuery.Rewrite(IndexReader reader) at Lucene.Net.Search.IndexSearcher.Rewrite(Query original) at Lucene.Net.Search.Query.Weight(Searcher searcher) at Lucene.Net.Search.Searcher。 CreateWeight(查询查询) 在Lucene.Net.Search.Searcher.Search(查询查询,过滤器滤芯,的Int32 N)

然后似乎Lucene的被阻止,因为我必须重新启动该网站,以使Lucene的再次搜索工作。

该网站不适用于非用户不幸的是,所以我不能给你一个URL。

但是如果有人以前见过这个问题,我将不胜感激有一些指导来解决它。

更新:我记得,我已经重新生成另一个文件夹的完整索引位之前和手动交换它无需重新启动该网站的应用程序池。它可能来自那个不?

干杯 法布里斯

回答

2

如果使用BooleanQuery.SetMaxClauseCount(int)确保它至少是1小于Int32.MaxValue。

FuzzyQuery.Rewrite()创建具有尺寸BooleanQuery.GetMaxClauseCount()1的,这将导致溢出异常的PriorityQueue。

相关问题