2010-01-27 66 views
0

我的示例代碼是: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); 

這裏我使用命中= searcherPM.Search(查詢);

但建議我需要使用這個調用

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

誰能說我如何從當我使用ParallelMultiSearch結果TopDocs文件?

Thanx。

回答

0

我認爲不應該有平行multisearcher和正常之間的區別。 應該像波紋管,我認爲:

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

最好的結果是在結果的第一個。 在這段代碼中,我會檢查這個文檔是否爲空。然而,我不知道爲什麼,不幸的是我不能提及消息來源。