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

وصول SQL إلى Elasticsearch

إنه مكون يسمح بإجراء عمليات تشغيل مشابهة لـ sql في Elasticsearch للـ query. يمكنك اعتبار Elasticsearch SQL كترجمه، فهو يفهم SQL وElasticsearch، ويقوم بـ وظائف Elasticsearch، يمكن قراءتها وتعاليمها بسهولة في الوقت الحقيقي.

مزايا SQL لـ Elasticsearch

  • لديه دمج محلي − يتم تنفيذ كل استعلام بشكل فعال بناءً على التخزين الأساسي.

  • لا توجد مكونات خارجية − لا يحتاج إلى أي أجهزة إضافية، أو عملية، أو وقت تشغيل أو مكتبة للبحث في 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 | ممتاز | 1989-05-26T00:00:00.000Z | 482
شارع رئيسي | ضوء الشمس | 1965-06-01T00:00:00.000Z | 604

ملاحظة −من خلال تغيير استعلام SQL أعلاه، يمكنك الحصول على مجموعة نتائج مختلفة.