Elasticsearch:Elasticsearch SQL介紹及實例


SQL 實操

檢索Elasticsearch schema 信息:DSL vs SQL

首先,我們確定表/索引的schema以及可供我們使用的字段。 我們將通過REST界面執行此操作:

POST /_sql
{
  "query":"desc sports"
}

上面的命令結果:

{
  "columns" : [
    {
      "name" : "column",
      "type" : "keyword"
    },
    {
      "name" : "type",
      "type" : "keyword"
    },
    {
      "name" : "mapping",
      "type" : "keyword"
    }
  ],
  "rows" : [
    [
      "age",
      "INTEGER",
      "integer"
    ],
    [
      "birthdate",
      "TIMESTAMP",
      "datetime"
    ],
    [
      "goals",
      "INTEGER",
      "integer"
    ],
    [
      "location",
      "GEOMETRY",
      "geo_point"
    ],
    [
      "name",
      "VARCHAR",
      "keyword"
    ],
    [
      "rating",
      "INTEGER",
      "integer"
    ],
    [
      "role",
      "VARCHAR",
      "keyword"
    ],
    [
      "score_weight",
      "REAL",
      "float"
    ],
    [
      "sport",
      "VARCHAR",
      "keyword"
    ]
  ]
}

也可以通過url參數format = txt以表格形式格式化以上響應。 例如:

POST /_sql?format=txt 
{
  "query": "DESCRIB sports"
}

上面查詢結果

|   column     |     type      |    mapping    
---------------+---------------+---------------
age            |INTEGER        |integer        
birthdate      |TIMESTAMP      |datetime       
goals          |INTEGER        |integer        
location       |GEOMETRY       |geo_point      
name           |VARCHAR        |keyword        
rating         |INTEGER        |integer        
role           |VARCHAR        |keyword        
score_weight   |REAL           |float          
sport          |VARCHAR        |keyword        

也可以通過控制台實現相同的查詢,需要使用一下命令登陸:

cd /home/elastic/elasticsearch-7.5.1
./bin/elasticsearch-sql-cli http://192.168.1.234:9200

可以看到SQL的命令提示符了,可以直接輸入sql


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM