elastic 多字段运算后过滤排序怎么写

elastic 查询多字段运算后过滤或者排序,下面的sql用es 怎么实现?

select * from table where ((字段 1 + 字段 2+字段3…) > 某个值)

select (字段1+字段2+字段3..) as sort_field from table order by sort_field desc

index mapping 如下

"mappings":{
     "counts":{
         "properties": {
         "job":{ "type":"integer"},
         "resume":{ "type":"integer"}
    }
}

如果 我要使用 每个 counts 中较小的值进行desc排序, 比如 如果 counts 中 job > resume 就使用 resume,如果 job < resume 就是使用 job, 这种查询如何写

def_songyixian
最佳答案
{
  "sort": {
    "_script": {
      "type": "number",
      "script": {
        "lang": "painless",
        "source": "if (doc ['job'].value > doc ['resume'].value){return doc ['resume'].value} else {return doc ['job'].value}"
      },
      "order": "desc"
    }
  }
} 

丑陋写法

3年前 评论
panglongxia (楼主) 3年前
讨论数量: 1
def_songyixian
{
  "sort": {
    "_script": {
      "type": "number",
      "script": {
        "lang": "painless",
        "source": "if (doc ['job'].value > doc ['resume'].value){return doc ['resume'].value} else {return doc ['job'].value}"
      },
      "order": "desc"
    }
  }
} 

丑陋写法

3年前 评论
panglongxia (楼主) 3年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!