2010-02-22 7 views
1

J'utilise Lucene.net 2.4 pour le site Web d'un client avec l'utilisation programmatique lourde des requêtes: requêtes booléennes, requêtes floues, poids différent, préfixe etc ....Opération arithmétique a entraîné un débordement avec Lucene.Net 2.4

Parfois, très au hasard, je l'erreur suivante:

opération arithmétique a entraîné un débordement à Lucene.Net.Util.PriorityQueue.Initialize (Int32 maxSize) à Lucene.Net.Search.FuzzyQuery.ScoreTermQueue ..ctor (taille Int32) à Lucene.Net.Search.FuzzyQuery.Rewrite (lecteur IndexReader) à Lucene.Net.Search.BooleanQuery.Rewrite (lecteur IndexReader) à Lucene.Net.Search.BooleanQuery.Rewrite (lecteur IndexReader) à Lucene.Net.Search.BooleanQuery.Rewrite (lecteur IndexReader) à Lucene.Net.Search.BooleanQuery.Rewrite (lecteur IndexReader) à Lucene.Net .Search.BooleanQuery.Rewrite (lecteur IndexReader) à Lucene.Net.Search.IndexSearcher.Rewrite (Query original) à Lucene.Net.Search.Query.Weight (chercheur Searcher) à Lucene.Net.Search.Searcher. CreateWeight (Requête de requête) à Lucene.Net.Search.Searcher.Search (Requête de requête, filtre de filtre, Int32 n)

Et puis il semble que Lucene est bloqué parce que je dois redémarrer le site Web afin de faire lucene chercher à nouveau

Le site Web n'est malheureusement pas disponible pour les non-utilisateurs, donc je ne peux pas vous donner d'adresse URL.

Mais si quelqu'un a déjà vu ce problème auparavant, je serais reconnaissant d'avoir quelques conseils pour le résoudre. MISE À JOUR: Je me souviens avoir généré un peu plus tard l'index complet dans un autre dossier et l'avoir changé manuellement sans redémarrer le pool d'applications du site. Ça pourrait venir de ça non?

Vive Fabrice

Répondre

2

Si vous utilisez BooleanQuery.SetMaxClauseCount(int) assurez-vous qu'il est au moins 1 à moins de Int32.MaxValue. FuzzyQuery.Rewrite() crée une PriorityQueue avec une taille de BooleanQuery.GetMaxClauseCount() +1, ce qui provoque l'exception de dépassement de capacité.

Questions connexes