elasticsearch - 无法获得使用桶聚合的任何结果
问题描述
我的 ES 中有一些 PR 数据。这就是文档的建模方式
{
"Author" : "dheerajrav",
"Date" : "2012-10-05T10:16:49Z",
"Number" : 2554441,
"IsMerged" : false,
"MergedBy" : "",
"Body" : ""
},
{
"Author" : "dheerajrav",
"Date" : "2012-10-05T09:11:35Z",
"Number" : 2553883,
"IsMerged" : false,
"MergedBy" : "",
"Body" : ""
},
{
"Author" : "crodjer",
"Date" : "2012-10-04T15:40:22Z",
"Number" : 2544540,
"IsMerged" : false,
"MergedBy" : "",
"Body" : ""
},
{
"Author" : "crodjer",
"Date" : "2012-10-04T07:52:20Z",
"Number" : 2539410,
"IsMerged" : false,
"MergedBy" : "",
"Body" : ""
}
.
.
.
]
}
我正在我的索引上尝试以下术语 agg 但我没有得到任何结果
curl -X GET "localhost:9200/newidx/_search?pretty" -H 'Content-Type: application/json' -d'
{
"aggs" : {
"contributors" : {
"terms" : {
"field" : "Author",
"size" : 100
}
}
}
}
'
期望的结果是为每个 PR 作者提供单独的存储桶。这是回应
"aggregations" : {
"contributors" : {
"doc_count_error_upper_bound" : 0,
"sum_other_doc_count" : 0,
"buckets" : [ ]
}
}
我的数据建模错了吗?
这是我的索引的映射
{
"newidx" : {
"mappings" : {
"properties" : {
"Stats" : {
"properties" : {
"Author" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
}
},
"Body" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
}
},
"Date" : {
"type" : "date"
},
"IsMerged" : {
"type" : "boolean"
},
"MergedBy" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
}
},
"Number" : {
"type" : "long"
}
}
}
}
}
}
}
我在我的代码中生成一个 json 文件并使用 elasticsearch_loader 将其索引到 elasticsearch,这是命令
elasticsearch_loader --es-host 'localhost' --index org-skills --type incident json --lines processed.json
解决方案
根据您的映射:
Author
字段被声明为text
(用于全文搜索)和keyword
(用于匹配整个值)。text
读取v/skeyword
之间的差异。父映射名称是
Stats
。
因此,您应该Stats.Author.keyword
在聚合查询中使用,即:
curl -X GET "localhost:9200/newidx/_search?pretty" -H 'Content-Type: application/json' -d'
{
"aggs" : {
"contributors" : {
"terms" : {
"field" : "Stats.Author.keyword",
"size" : 100
}
}
}
}
'
推荐阅读
- android - 装有 Android 10 的 OnePlus Nord 设备很痛苦!
- java - 在窗格中显示形状的 ArrayList (JavaFX)
- django - 覆盖日期时间在 Django 的 Postgresql 中不起作用
- spring - 如何捕获 JpaRepository 接口的 save 方法抛出的异常
- javascript - 关于 javascript 'onclick' 的基本问题
- javascript - 我想在前端使用一个 api 函数与多个表进行通信。是正确的代码吗?
- azure-application-insights - 在 Azure 应用程序洞察应用程序地图中跟踪 python simpleHttp 服务器日志记录信息
- python - 将时区感知字符串转换为日期时间 python,其格式类似于 '2012-11-01T04:16:13.000Z'
- python - raise TypeError('添加的层必须是' TypeError: 添加的层必须是类Layer的实例。找到:tf.Tensor
- javascript - 如何将值从 HTML 传递到 JS