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