说我有一个包含以下元素的数据库:
{
"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}
谢谢!
最佳答案
您可以使用LINQ将所有子列表展平为一个,然后按键分组并计算出现次数:
ListOfObjects.SelectMany(x => x.arrayOfStrings).GroupBy(x => x).Select(x => new KeyValuePair<string, int>(x.Key, x.Count()))
ElasticLinq
关于c# - Elasticsearch-计算数组中(不可预测的)字符串的出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45800001/