Результаты случайной сортировки в Lucene.Net 2.4 - PullRequest
0 голосов
/ 21 октября 2010

Как отсортировать результаты в случайном порядке.мой код выглядит примерно так:

Dim searcher As IndexSearcher = New IndexSearcher(dir, True)
Dim collector As TopScoreDocCollector = TopScoreDocCollector.create(100, True)
searcher.Search(query, collector)
Dim hits() As ScoreDoc = collector.TopDocs.scoreDocs

For Each sDoc As ScoreDoc In hits
    'get doc and return
Next

1 Ответ

0 голосов
/ 22 октября 2010

Поскольку это IEnumerable, вы можете использовать стандартный linq для его рандомизации.Вы можете найти пример здесь :

public static IEnumerable<T> Randomize<T>(this IEnumerable<T> source)
{
   Random rnd = new Random();
   return source.OrderBy<T, int>((item) => rnd.Next());
}

Если вы хотите сделать это внутри самой Lucene, вы можете сделать свой собственный сортировщик (хотя учтите, что выбольше не будет рандомизировать первые 100 результатов, а скорее будет рандомизировать все результаты).

...