Django、Haystack、ElasticSearchを使用しています。順序付けられたフィールド値が空( "")の結果が、空でない結果の後に来るように、検索結果を順序付けたいと思います。これを実行できるAPIがHaystackに見つかりません。ElasticSearchに送信されるリクエストは次のようになります。
{
"sort":[
{
"version":{
"order":"asc"
}
}
],
"query":{
...
}
}
このElasticSearchクエリを書き直して、「version」の文字列が空の結果が「version」が存在する結果の後に来るようにする方法はありますか?
私はこれをPythonで次のように実装しました:
sorted(sqs, key=lambda x: getattr(x, 'version') == '')