首页 > 解决方案 > 如何返回字段中所有值的列表

问题描述

我有一个像这样的文件:

{
"Id":"1",
"Name":"product1",      
"Categories":["Cat1",
  "Cat2",
  "Cat3"]
},
{
"Id":"2",
"Name":"product2",      
"Categories":["Cat3",
  "Cat2",
  "Cat6"]
}

现在我想返回所有类别的不同列表。我尝试了 CollapseParameter,但它不起作用。

var foo = _solr.Query(new SolrQuery("*"), new QueryOptions
{
    Collapse = new CollapseParameters("Categories")
});

var bar= results.CollapseExpand; //NULL

如何在不遍历所有文档的情况下获取所有类别的列表?我必须为类别创建新文档吗?还是我应该使用 Faceting?

标签: c#searchsolrsolrnet

解决方案


看起来 JSON 无效。所以我创建了一个更改 Json 的解决方案:

{
    "items": [{
        "Id": "1",
        "Name": "product1",
        "Categories": ["Cat1", "Cat2", "Cat3"]
    }, {
        "Id": "2",
        "Name": "product2",
        "Categories": ["Cat3", "Cat2", "Cat6"]
    }]
}

然后,我使用了 foreach 和 LINQ 结构:

var x = categories.SelectMany(item => item.Categories).Distinct();

推荐阅读