我正在使用 Django、Haystack 和 ElasticSearch。我想对我的搜索结果进行排序,以便排序字段值为空(“”)的结果排在不为空的结果之后。我在 Haystack 中找不到可以执行此操作的 API。发送到 ElasticSearch 的请求如下所示:
{
"sort":[
{
"version":{
"order":"asc"
}
}
],
"query":{
...
}
}
有没有办法重写这个 ElasticSearch 查询,以便“version”为空字符串的结果将出现在“version”存在的结果之后?
我在 Python 中实现了这一点:
sorted(sqs, key=lambda x: getattr(x, 'version') == '')