Elasticsearch OR查询 [英] Elasticsearch OR query

查看:620
本文介绍了Elasticsearch OR查询的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

谁能告诉我如何在elastisearch中编写以下Mysql查询

Can anyone tell me how do I write the below Mysql query in elastisearch

Select * from `table` WHERE `Name`='A' OR `Name`='B' order by `rank` DESC

我尝试了多种互联网解决方案

I have tried multiple solutions the internet like

{

"sort":{"rank":{"order":"desc"}}, 

"query": {

    "query_string" : {
        "fields" : ["Name"],
        "query" : "A OR B"
    }


}

并尝试了以下代码

{

"sort":{"rank":{"order":"desc"}}, 

  "query" : {
    "bool": {
      "should": [
        {
          "match_phrase" : {
            "Name" : "A"
          }
        },
        {
          "match_phrase": {
            "Name": "B"
          }
        }
      ]

    } 
  }
}

推荐答案

您可以在所有文档上使用Bool-Filter和Order来实现:

You could do it with Bool-Filter and Order on all Documents:

{
  "query": {
    "match_all": {}
  },
  "filter": {
    "bool": {
      "should": [
        {
          "term": {
            "Name": "A"
          }
        },{
          "term": {
            "Name": "B"
          }
        }
      ]
    }
  },"sort": [
    {
      "rank": {
        "order": "desc"
      }
    }
  ]
}

或者具有范围查询子集:

Or have a subset with Range Query:

"query": {
    "range": {
      "JoinDate": {
        "lte": 1431051540
      }
    }
  }

这篇关于Elasticsearch OR查询的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆