【发布时间】:2021-09-07 21:30:40
【问题描述】:
弹性搜索版本: 6.2
我想要按特定字段的计数数据组
示例:
假设我有 3 个以下文档
{ 字段1:“值1” } { 字段1:“值2” } { 字段1:“值2” }
我想要以下结果
值1:1
值2:2
注意:字段为文本类型
【问题讨论】:
标签: elasticsearch lucene elastic-stack
弹性搜索版本: 6.2
我想要按特定字段的计数数据组
示例:
假设我有 3 个以下文档
{ 字段1:“值1” } { 字段1:“值2” } { 字段1:“值2” }
我想要以下结果
值1:1
值2:2
注意:字段为文本类型
【问题讨论】:
标签: elasticsearch lucene elastic-stack
您可以简单地使用terms aggregation:
{
"size": 0,
"aggs": {
"groups": {
"terms": {
"field": "field1"
}
}
}
}
【讨论】:
keyword 子字段:stackoverflow.com/a/58195999/4604579 或使用@cmhteixeira 共享的链接
text 字段,您也可以决定只使用 keyword 字段。
您想要的称为聚合。这是查询:
GET /yourIndex/_search
{
"aggs": {
"myCustomAggregation": {
"terms": {
"field": "field1"
}
}
}
}
但是请注意,您不能对属于 text 字段的字段(在您的情况下为字段 field1)执行聚合。您应该将该字段设置为keyword。
【讨论】: