2010-02-22 57 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。

相關問題