如何获取特定属性的唯一值列表

时间:2013-12-13 16:43:37

标签: c# solr indexing solrnet

我正在尝试获取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索引中特定字段的唯一值列表?

0 个答案:

没有答案