Maneira mais rápida de obter valores distintos do Lucene Query
Atualmente eu faço assim:
IndexSearcher searcher = new IndexSearcher(lucenePath);
Hits hits = searcher.Search(query);
Document doc;
List<string> companyNames = new List<string>();
for (int i = 0; i < hits.Length(); i++)
{
doc = hits.Doc(i);
companyNames.Add(doc.Get("companyName"));
}
searcher.Close();
companyNames = companyNames.Distinct<string>().Skip(offSet ?? 0).ToList();
return companyNames.Take(count??companyNames.Count()).ToList();
Como você pode ver, primeiro coleciono TODOS os campos (vários milhares) e depois os distinto, possivelmente pulo alguns e removo algun
Sinto que deveria haver uma maneira melhor de fazer iss