教程 > elastic search > 阅读:16

elasticsearch sql 访问——迹忆客-ag捕鱼王app官网

它是一个组件,允许针对 elasticsearch 实时执行类似 sql 的查询。 我们可以将 elasticsearch sql 视为翻译器,它既理解 sql 又理解 elasticsearch,并且可以通过利用 elasticsearch 功能轻松地实时、大规模地读取和处理数据。

elasticsearch sql 的优势

  • 它具有本机集成 - 根据底层存储对相关节点有效地执行每个查询。
  • 没有外部部件 - 不需要额外的硬件、进程、运行时或库来查询 elasticsearch。
  • 轻量级和高效 - 它包含并公开 sql 以允许实时进行适当的全文搜索。

示例

put /schoollist/_bulk?refresh
   {"index":{"_id": "cbse"}}
   {"name": "gleandale", "address": "jr. court lane", "start_date": "2011-06-02",
   "student_count": 561}
   {"index":{"_id": "icse"}}
   {"name": "top-notch", "address": "gachibowli main road", "start_date": "1989-
   05-26", "student_count": 482}
   {"index":{"_id": "state board"}}
   {"name": "sunshine", "address": "main street", "start_date": "1965-06-01",
   "student_count": 604}

运行上面的代码,我们得到如下所示的响应

{
   "took" : 277,
   "errors" : false,
   "items" : [
      {
         "index" : {
            "_index" : "schoollist",
            "_type" : "_doc",
            "_id" : "cbse",
            "_version" : 1,
            "result" : "created",
            "forced_refresh" : true,
            "_shards" : {
               "total" : 2,
               "successful" : 1,
               "failed" : 0
            },
            "_seq_no" : 0,
            "_primary_term" : 1,
            "status" : 201
         }
      },
      {
         "index" : {
            "_index" : "schoollist",
            "_type" : "_doc",
            "_id" : "icse",
            "_version" : 1,
            "result" : "created",
            "forced_refresh" : true,
            "_shards" : {
               "total" : 2,
               "successful" : 1,
               "failed" : 0
            },
            "_seq_no" : 1,
            "_primary_term" : 1,
            "status" : 201
         }
      },
      {
         "index" : {
            "_index" : "schoollist",
            "_type" : "_doc",
            "_id" : "state board",
            "_version" : 1,
            "result" : "created",
            "forced_refresh" : true,
            "_shards" : {
               "total" : 2,
               "successful" : 1,
               "failed" : 0
            },
            "_seq_no" : 2,
            "_primary_term" : 1,
            "status" : 201
         }
      }
   ]
}

sql 查询

以下示例显示了我们如何构建 sql 查询

post /_sql?format=txt
{
   "query": "select * from schoollist where start_date < '2000-01-01'"
}

运行上面的代码,我们得到如下所示的响应

address             | name          | start_date             | student_count
-------------------- --------------- ------------------------ ---------------
gachibowli main road|top-notch      |1989-05-26t00:00:00.000z|482
main street         |sunshine       |1965-06-01t00:00:00.000z|604

注意 - 通过更改上面的 sql 查询,我们可以获得不同的结果集。

查看笔记

扫码一下
查看教程更方便
网站地图