我使用elasticsearch实现完整的用户搜索。我想返回搜索用户和每个结果之间共享的共同朋友的数量。我目前正在使用"条款"查询以提高与搜索用户共享共同朋友的用户的结果分数。
对于上下文,我的查询的相关块粘贴在下面:
"should": [
{
"terms": {
"friend_ids": [
"100", "2", "8", "9", "15", "25"
]
}
}
]
理想情况下,响应会为每个文档包含一个名为" num_mutual_friends" ....
的字段答案 0 :(得分:0)
实现此目的的一种方法是使用script_field:
{
"query": {...},
"script_fields": {
"num_mutual_friends": {
"script": {
"inline": "doc['friend_ids'].values.intersect(input_friend_ids).length",
"params": {
"input_friend_ids": [
"101", "9", "8"
]
}
}
}
}
}