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

Кто может сказать мне, как получить документ из результата TopDocs, когда я использую ParallelMultiSearch?

Thanx.

ответ

0

Я предполагаю, что не должно быть разницы между параллельным мультислектором и обычным. Должно быть как сильфон я думаю:

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

Лучший результат является первым в результатах поиска. В этом фрагменте я должен был проверить этот документ после его отсутствия. Однако я не знаю, почему и, к сожалению, я не могу упомянуть источник.