【发布时间】:2021-04-28 06:19:03
【问题描述】:
鉴于我有以下数据:
| Date | Value |Count|
| 2021-01-01 | X | 1 |
| 2021-01-01 | X | 2 |
| 2021-01-01 | Y | 1 |
| 2021-02-02 | X | 1 |
| 2021-02-02 | X | 2 |
| 2021-02-02 | Y | 5 |
我想使用多个字段按这些数据分组。 (日期和值)。
Example : Data.GroupBy(x=> new { x.Date, x.Value });
预期结果:
| Date | Value | Count |
| 2021-01-01 | X | 3 |
| 2021-01-01 | Y | 1 |
| 2021-02-02 | X | 3 |
| 2021-02-02 | Y | 5 |
如何使用 Nest 执行此查询?
更新:
索引映射:
{
"samples" : {
"mappings" : {
"properties" : {
"count" : {
"type" : "long"
},
"date" : {
"type" : "date"
},
"value" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
}
}
}
}
}
}
【问题讨论】:
-
您通过
Nest添加索引或在Kibana仪表板中明确添加?因为当通过Nest添加时,您可以将NumberOfShards设置为索引。 -
我使用 Nest 添加了索引
-
很难猜测发生了什么。您可以在弹性连接上使用
EnableDebugMode来查看究竟是什么问题,您可以在异常中看到调试消息。 -
我启用了调试模式,消息是:文本字段未针对需要按文档字段数据的操作(如聚合和排序)进行优化,因此默认情况下禁用这些操作。请改用关键字字段。我在使用 Suffix('keyword') 之前解决了这个问题,但我不知道脚本查询中 Suffix('keyword') 的等价物是什么。
标签: c# elasticsearch nest