ElasticSearch提升排名与存储并按排名进行排序

时间:2019-05-02 06:52:15

标签: sorting elasticsearch ranking rank

我在ES中有一组文档,并且有一个外部列表,该列表根据某些逻辑进行排序。当我从ES中检索这些文档时,我希望它们在外部列表中排序,如果它们不存在于外部列表中,则我还有一组其他参数需要对其进行排序。

例如,我在ES中有D1, D2, D3, D4。外部排序列表的顺序为D3, D1。并且基于上述其他参数,ES中的顺序为D4, D3, D1, D2。因此,我想要的最终结果是D3, D1, D4, D2

直到我看到为止,有两种方法可以做到这一点。我可以

  1. 将等级值保留在各自的文档中,即D3的字段rank(假设)为1,D1的字段为2,其余的{{1} }。在排序查询中,我先说按null排序,然后再说其他参数。或
  2. 使用它来增强各个文档。因此,对于每个这些文档,我都会有一个rank查询和boosting参数(必须仔细确定,否则term会在D4之前出现)。

对此有两个问题。

  1. 社区喜欢什么,为什么?
  2. 我在使用一项相对于另一项可以获得任何性能优势时。

就个人而言,我倾向于选择1,因为出错的机会更少。

0 个答案:

没有答案