我正在尝试获取solr索引中特定字段的所有唯一值的列表。我知道唯一值的数量相对较小(<1000),所以我不应该有任何问题解析它们,但我当前的方法是当索引有大量文档时给我内存不足的例外
以下是我正在尝试的内容:
public IList<string> GetAllShopNumbers()
{
ISolrQuery q= GetSomeSimpleSolrQuery();
var r = solr.Query(q, new QueryOptions
{
Facet = new FacetParameters
{
Queries = new[] {new SolrFacetFieldQuery("shop_number")}
}
});
IList<string> shopNumbers = new List<string>();
foreach (var facet in r.FacetFields["shop_number"])
{
shopNumbers.Add(facet.Key);
}
return shopNumbers;
}
如上所述,这会在大型索引上引发内存不足异常。我们如何有效地获取Solr索引中特定字段的唯一值列表?