我正在尝试汇总具有type text
的字段。
映射设置:
"Group":{"type":"text"}
并查询:
{
"query": {
"term": {
"request_id": 22
}
},
"size": 0,
"aggs": {
"sets": {
"terms": {"field": "Group.keyword"}
}
}
}
这将得到空结果:
"hits": {
"total": 7463,
"max_score": 0,
"hits": []
},
"aggregations": {
"sets": {
"doc_count_error_upper_bound": 0,
"sum_other_doc_count": 0,
"buckets": []
}
}
如果没有.keyword
,则会得到illegal_argument_exception
.. reason: ... alternatively use a keyword field instead.
。
此外,Group
字段中的值仅为Grp1
和Grp2
。
如何基于这两个值聚合集合?
答案 0 :(得分:2)
将映射更新为:
"Group": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword"
}
}
}
在映射中进行了上述更改之后,重新索引文档,然后可以使用Group.keyword
如果您永远不想在“组”字段的值上进行全文搜索,则应将其保留为关键字。
"Group":{"type":"keyword"}
在这种情况下,您可以在Group
字段本身上进行汇总。