我为任何英语错误感到抱歉。
我希望有人能帮助我。
假设我有下面的Map到我的索引:
PUT test-index
{
"mappings": {
"properties": {
"nestedOBJField": {
"type": "nested",
"index": true
},
"keywordField": {
"type": "keyword",
"index": true
}
}
}
}
是否可以将复合功能与嵌套字段一起使用?
如果我能做这样的事情,那将是非常困难的:
GET /test-index/_search
{
"size": 0,
"aggs": {
"TestAgg": {
"composite": {
"size": 10000,
"sources": [
{
"keyWordFieldAgg": {
"terms": {
"field": "keyWordField"
}
},
{
"nestedFieldAgg": {
"terms": {
"field": "nestedOBJField.attribute"
}
}
}
]
}
}
}
}
但是这种方法会返回一些错误。
如果有人能帮上忙,我将不胜感激
1条答案
按热度按时间abithluo1#
属性nestedOBJField的数据类型为“nested”,属性keyWordField为关键字类型,并且与nestedOBJField处于同一级别。
要在聚合中使用嵌套字段,您需要使用nested aggregation,但是复合聚合中的所有源必须是嵌套类型。
您可以使用以下解决方法。
1.将keyWordField移动到文档中嵌套对象内
示例文档
查询
将字段移动到嵌套属性内将意味着数据重复,即更新所有嵌套文档中数据
1.使用术语聚合-在这种情况下,分页将是一个问题