elasticsearch - 如何在桶排序弹性搜索查询中添加多个字段
问题描述
下面是查询。在此查询中,我需要再添加一个字段,即category.keyword
. 我发现很难添加一个额外的字段。请修改我的查询并在查询中添加类别关键字字段。
我的要求是显示问题列表和带有计数的类别列表。
{
"size": 0,
"aggs": {
"genres": {
"terms": {
"field": "question.keyword",
"order": {
"_count": "desc"
}
},
"aggs": {
"bucket_truncate": {
"bucket_sort": {
"from": 0,
"size": 10
}
}
}
}
}
}
索引映射详细信息
"mapping": {
"properties": {
"answer": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"category": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"id": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"question": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"relavence_score": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"source": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"timestamp": {
"type": "long"
},
"id": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
}
}
}
}
解决方案
在您的情况下,您可以在同一级别有多个聚合,bucket_truncate
并且categories
:
{
"size": 0,
"aggs": {
"questions": {
"terms": {
"field": "question.keyword",
"order": {
"_count": "desc"
}
},
"aggs": {
"categories": {
"terms": {
"field": "category.keyword",
"order": {
"_count": "desc"
}
}
},
"bucket_truncate": {
"bucket_sort": {
"from": 0,
"size": 10
}
}
}
}
}
}
推荐阅读
- c# - C# 透明表单使用抗锯齿丢弃像素
- flutter - Flutter bloc 状态值已更新,但导航值为空
- python - 为什么添加 scipy.sparse.dia_matrix 的实例这么慢?
- java - 如何从 Hibernate Jpa 中的父实体仅获取 ChildIds(而不是整个子对象)?
- python - 在 Django 中创建收藏夹列表,新模型或字典数组的最佳选择是什么?
- html - 为什么设置 max-width 会使使用更具体的选择器设置宽度无效?
- ubuntu - 无法统计“b2”:没有这样的文件或目录
- c# - Linq:C# 和 VB.NET 的区别
- typescript - 如何解决 react 本机屏幕打字稿中未定义的 route.params
- anaconda - 橙色折线图小部件的问题