Elasticsearch - 计算数组中(不可预测的)字符串的出现次数

时间:2017-08-21 14:44:11

标签: c# elasticsearch elasticsearch-net

假设我有一个包含以下元素的数据库:

{
    "elmName" : "elm1",
    "arrayOfStrings" : [ "str1", "str4", "str2"]
},
{
    "elmName" : "elm2",
    "arrayOfStrings" : ["str4", "str3"]
},
{
    "elmName" : "elm3",
    "arrayOfStrings" : [ "str1"]
},
{
    "elmName" : "elm4",
    "arrayOfStrings" : []
}

' arrayOfStrings'中的字符串在搜索时是随机的和未知的。 如何在' arrayOfStrings'下查询所有独特元素的数量?如:

{
"str4" : 2,
"str2" : 1,
"str1" : 2,
"str3" : 1}

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以使用LINQ将所有子列表展平为一个,然后按键分组并计算出现次数:

 ListOfObjects.SelectMany(x => x.arrayOfStrings).GroupBy(x => x).Select(x => new KeyValuePair<string, int>(x.Key, x.Count()))

ElasticLinq