2010-09-03 5 views
0

Je l'extrait de code de code suivant:Lucene.Net IndexSearcher ne fonctionne pas avec BooleanQuery

 QueryParser parser = new MultiFieldQueryParser(Lucene.Net.Util.Version.LUCENE_29, new string[] { Field1, Field2, Field3 }, _analyzer); 
     parser.SetDefaultOperator(QueryParser.Operator.AND); 
     Query queryOrig= parser.Parse(queryString); 

     var query = new BooleanQuery(); 
     query.Add(queryOrig, BooleanClause.Occur.MUST); 

     if (itemId.HasValue) 
      query.Add(new TermQuery(new Term("Field3", NumericUtils.IntToPrefixCoded(itemId.Value))), BooleanClause.Occur.MUST); 

     Hits hits; 
     if (sortField != null) 
     { 
      var sort = new Sort(new SortField(sortField, isDescending)); 
      hits = Searcher.Search(query, null, sort); 
     } 
     else 
      hits = Searcher.Search(query); 

Ce morceau de code est toujours 0 coups retournaient peu importe quoi. Si je fais une recherche directe en utilisant le queryOrig sans le booléen, cela fonctionne très bien. Je suis sûr que les données sont correctes.

Merci, Leonardo

Répondre

0

bien .. Il était un problème de données! : D Le lucene fonctionne très bien.

Merci, Leo!