2010-01-27 7 views
0

Mon exemple de code est:Lucene.NET MultiSearcher

  Searchable[] remoteSearch = new Searchable[sindexes.Length]; 
      for (int i = 0; i < sindexes.Length; i++) 
      { 
       if(sindexes[i].Trim().Length>0) 
        remoteSearch[i] = new IndexSearcher(sindexes[i]); 
      } 
      searcherPM = new ParallelMultiSearcher(remoteSearch); 
      QueryParser qp = new QueryParser("text", new 
      Lucene.Net.Analysis.Standard.StandardAnalyzer()); 
      Query query = qp.Parse(InputText); 

      hits = searcherPM.Search(query); 

J'utilise ici = coups searcherPM.Search (requête);

mais comme recommandé que je dois utiliser cet appel

  TopDocs result = searcherPM.Search(query, null, nTo); 

Qui peut me dire comment récupérer le document à partir du résultat TopDocs lors de l'utilisation ParallelMultiSearch?

Thanx.

Répondre

0

Je suppose qu'il ne devrait pas y avoir de différence entre le multisearcher parallèle et le normal. devrait être comme ci-dessous, je pense:

for (int i = 0; i < results.totalHits; i++) 
{ 
    var doc = searcherPM.Doc(results.scoreDocs[i].doc); 
} 

Le meilleur résultat est le premier dans les résultats. Dans l'extrait que je fould ce document a été après vérifié si ce n'est pas null. Cependant je ne sais pas pourquoi et malheureusement je ne peux pas mentionner la source.