我在ES中有一组文档,并且有一个外部列表,该列表根据某些逻辑进行排序。当我从ES中检索这些文档时,我希望它们在外部列表中排序,如果它们不存在于外部列表中,则我还有一组其他参数需要对其进行排序。
例如,我在ES中有D1, D2, D3, D4
。外部排序列表的顺序为D3, D1
。并且基于上述其他参数,ES中的顺序为D4, D3, D1, D2
。因此,我想要的最终结果是D3, D1, D4, D2
。
直到我看到为止,有两种方法可以做到这一点。我可以
D3
的字段rank
(假设)为1,D1
的字段为2,其余的{{1} }。在排序查询中,我先说按null
排序,然后再说其他参数。或rank
查询和boosting参数(必须仔细确定,否则term
会在D4
之前出现)。对此有两个问题。
就个人而言,我倾向于选择1,因为出错的机会更少。