elasticSearch使用原生sql查询

使用sql进行查询:(6.3版本以后)

POST /_sql?format=txt
{
    "query": "SELECT * FROM library WHERE release_date < '2000-01-01'"
}

把sql翻译为 DSL

POST /_sql/translate
{
  "query": "SELECT * from index_name where (service='shop' OR service='waimai') LIMIT 10"
}

响应结果:

{
  "size" : 10,
  "query" : {
    "terms" : {
      "service" : [
        "shop",
        "waimai"
      ],
      "boost" : 1.0
    }
  }
}

得到的DSL可能效率不高,甚至可能不完全正确,毕竟是自动生成的,在一定情况下或许有帮助。

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注