English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Elasticsearch SQL 접근

는 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"
}

위의 코드를 실행하면 다음과 같은 응답을 얻습니다:

주소             | 이름          | 시작 날짜           | 학생 수
--------------------+---------------+------------------------+---------------
Gachibowli Main Road|Top-Notch      |1989-05-26T00:00:00.000Z|482
Main Street         |Sunshine       |1965-06-01T00:00:00.000Z|604

노트 위의 SQL 쿼리를 변경하면 다른 결과 집합을 얻을 수 있습니다.