Lucene.NET MultiSearcher - PullRequest
       9

Lucene.NET MultiSearcher

0 голосов
/ 27 января 2010

Мой пример кода:

            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);

Здесь я использую hit = searcherPM.Search (query);

но в соответствии с рекомендациями мне нужно использовать этот вызов

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

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

Thanx.

1 Ответ

0 голосов
/ 28 февраля 2010

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

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

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

...