【发布时间】:2016-04-15 04:06:18
【问题描述】:
我正在尝试通过将根文档中的数字字段与嵌套文档中的字段组合来对 ES 文档进行排序。为简单起见,假设我想对 doc['score'] + doc['nested.score'] 进行排序。
示例映射和几个数据文档在这里:http://pastebin.com/9sdMphsR
因为它试图直接访问doc['score'],所以一种天真的(也是错误的)方法是:
POST /testing/stuff/_search
{
"query": {
"match_all": {
}
},
"sort": {
"_script": {
"type": "number",
"mode": "max",
"script": {
"inline": "doc['score'].value + doc['variations.score'].value",
"lang": "expression"
},
"order": "desc",
"nested_path": "variations"
}
}
}
这样做的正确方法是什么?我意识到我可以将根级 score 复制到每个嵌套文档中,但如果我可以避免这样做,我更愿意这样做。
【问题讨论】:
标签: elasticsearch elasticsearch-2.0