【发布时间】:2016-08-21 03:29:25
【问题描述】:
我想用一个 ElasticSearch 查询来进行这种排序(不使用 script_score):
- region=DE 和 language=de 的对象,按 createdDate 排序。
- region=DE 和任何语言的对象,按 createdDate 排序。
- 具有任何地区和语言=en 的对象,按 createdDate 排序。
起初,我以为我可以做一个function_score查询(boost_mode:replace,score_mode:sum)和:
- 如果 region=DE 且 language=de,则将分数设置为 300000000000000 + createdDate。
- 如果 region=DE 和 language!=de,则将分数设置为 200000000000000 + createdDate。
- 如果 region!=DE 和 language=en,则将分数设置为 100000000000000 + createdDate。
我可以使用 field_value_factor 将 createdDate 添加到分数中。但是如果 region=DE 和 language=de,我找不到 function_score function 将 300000000000000 添加到分数中。
是否可以在不使用 script_score 的情况下做到这一点?
【问题讨论】:
标签: elasticsearch