2010-01-27 70 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); 
} 

最好的结果是在结果的第一个。 在这段代码中,我会检查这个文档是否为空。然而,我不知道为什么,不幸的是我不能提及消息来源。