我有以下示例 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 章”} ] }