Elasticsearch-sql-access

提供:Dev Guides
移動先:案内検索

Elasticsearch-SQLアクセス

SQLに似たクエリをElasticsearchに対してリアルタイムで実行できるようにするコンポーネントです。 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クエリを変更することにより、異なる結果セットを取得できます。