gpt4 book ai didi

php - Elasticsearch 按值优先排序

转载 作者:行者123 更新时间:2023-11-29 06:25:57 28 4
gpt4 key购买 nike

我想在发布日期 对结果进行排序。我想要 2015 电影放在第一位,其余年份按 has_poster 值排序。所以我得到如下结果:

2015, 2015, 1989, 2017, 2006

等等

到目前为止,这就是我所拥有的。

$params['index'] = 'movies';
$params['type'] = 'movie';
$params['body']['size'] = 50;
$params['body']['sort'] = array(
array('has_poster' => "desc"),
array('_score' => "desc"),
);
$params['body']['query']['filtered'] = array(
'query' => array(
'query_string' => array(
'query' => "survivor",
'fields' => array('name', 'orig_title'),
'default_operator' => "AND"
),
)
);

我需要在 MySQL for Elasticsearch 中等效于 ... ORDER BY FIELD(releasedate, 2015), has_poster DESC ...

最佳答案

您需要脚本化排序:

{
"sort": [
{
"_script": {
"script": "if(doc['releasedate'].date.year==2015) return 1; else return 0;",
"type": "number",
"order": "desc"
}
},
{
"has_poster": "desc"
}
]
}

关于php - Elasticsearch 按值优先排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31002660/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com