在elasticsearch中按时间戳降序排序,然后在顶部使用特定值过滤排序

时间:2017-09-21 16:53:41

标签: sorting elasticsearch

我想使用时间戳对弹性搜索中的数据进行排序。在排序结果中,我希望那些匹配特定键的顶部然后是其余的

例如..我有一个关键时间戳和性别的数据。 所以我想按时间戳的降序对数据进行排序,结果应该包含性别与男性在顶部,然后是其他性别。

我试过,但一次可以实现任何一个 P.S:我的弹性搜索版本是1.5

1 个答案:

答案 0 :(得分:0)

您可以使用常量分数查询为所有具有所需密钥的文档提供分数“1”,并将所有其他文档分数分配为“0”。 然后你可以按分数排序&时间戳。

https://www.elastic.co/guide/en/elasticsearch/reference/1.5/query-dsl-constant-score-query.html https://www.elastic.co/guide/en/elasticsearch/reference/1.5/query-dsl-function-score-query.html

您也可以对脚本执行相同操作,但建议使用功能分数查询。

https://www.elastic.co/guide/en/elasticsearch/reference/1.5/search-request-sort.html#_script_based_sorting