我有以下示例 mappipng:
{
“书” : {
“特性” : {
“作者”:{“类型”:“字符串”},
“标题”:{“类型”:“字符串”},
“评论”:{
“特性” : {
“网址”:{“类型”:“字符串”},
“分数”:{“类型”:“整数”}
}
},
“章节”:{
“include_in_root”:1,
“类型”:“嵌套”,
“特性” : {
“名称”:{“类型”:“字符串”}
}
}
}
}
}
我想了解评论数量的一个方面——即“评论”数组的长度。例如,我需要的口头结果是:“100 个文档,10 个评论,20 个文档,5 个评论,......”
我正在尝试以下统计方面:
{
“询问” : {
“match_all”:{}
},
“方面”:{
“stat1”:{
“统计”:{“脚本”:“doc['reviews.score'].values.size()”}
}
}
}
但它一直失败:
{
“错误”:“SearchPhaseExecutionException[未能执行阶段 [query_fetch],完全失败;shardFailures {[mDsNfjLhRIyPObaOcxQo2w][facettest][0]:QueryPhaseExecutionException[[facettest][0]:query[ConstantScore(NotDeleted(cache(org.elasticsearch) .index.search.nested.NonNestedDocsFilter@a2a5984b)))],from[0],size[10]: 查询失败 [无法执行主查询]]; 嵌套: PropertyAccessException [[错误: 无法访问: 评论; 在类:org.elasticsearch.search.lookup.DocLookup]
[附近:{... doc[reviews.score].values.size() ....}]
^
[行:1,列:5]];}]",
“状态”:500
}
我怎样才能实现我的目标?
ElasticSearch 版本是 0.19.9。
这是我的示例数据:
{
“作者”:“马克吐温”,
"title" : "汤姆索亚历险记",
“评论”:[
{
“网址”:“amazon.com”,
“分数”:10
},
{
“网址”:“www.barnesandnoble.com”,
“分数”:9
}
],
“章节”:[
{“名称”:“第 1 章”},{“名称”:“第 2 章”}
]
}
{
“作者”:“杰克伦敦”,
"title" : "野性的呼唤",
“评论”:[
{
“网址”:“amazon.com”,
“分数”:8
},
{
“网址”:“www.barnesandnoble.com”,
“分数”:9
},
{
“网址”:“www.books.com”,
“分数”:5
}
],
“章节”:[
{“名称”:“第 1 章”},{“名称”:“第 2 章”}
]
}