弹性搜索上的Sql

时间:2015-05-15 08:04:35

标签: sql elasticsearch

在Elastic Search之上是否有一个Sql驱动程序允许您使用SQL语法查询ES?它更好地支持更复杂的sql查询,比如两个表之间的连接。

同样的问题也是Solr。

2 个答案:

答案 0 :(得分:3)

如果您想让生活复杂化,可以使用熟悉的SQL语法查询elasticsearch。您还可以在SQL中使用ES函数。

https://github.com/NLPchina/elasticsearch-sql

更简单的方法是阅读Elastic文档并熟悉EL提供的更丰富的查询语言https://www.elastic.co/guide/en/elasticsearch/guide/current/index.html

答案 1 :(得分:0)

注意:这尚不支持Joins ...但是90%的时间是我们的救命之路

使用Sql API在Elastic搜索中,我们可以编写查询,也可以将它们转换为Elastic查询

 POST /_sql/translate
{
    "query": "SELECT * FROM customer where address.Street='JanaChaitanya Layout' and Name='Pavan Kumar'"
}

对此的答复是

{
  "size" : 1000,
  "query" : {
    "bool" : {
      "must" : [
        {
          "term" : {
            "address.Street.keyword" : {
              "value" : "JanaChaitanya Layout",
              "boost" : 1.0
            }
          }
        },
        {
          "term" : {
            "Name.keyword" : {
              "value" : "Pavan Kumar",
              "boost" : 1.0
            }
          }
        }
      ],
      "adjust_pure_negative" : true,
      "boost" : 1.0
    }
  },
  "_source" : {
    "includes" : [
      "Name",
      "address.Area",
      "address.Street"
    ],
    "excludes" : [ ]
  },
  "docvalue_fields" : [
    {
      "field" : "Age"
    }
  ],
  "sort" : [
    {
      "_doc" : {
        "order" : "asc"
      }
    }
  ]
}

现在我们可以使用此结果查询弹性搜索 有关更多详细信息,请阅读本文

https://xyzcoder.github.io/elasticsearch/2019/06/25/making-use-of-sql-rest-api-in-elastic-search-to-write-queries-easily.html