说明:本文是根据 Elasticsearch 官网文档翻译来的,亲自使用后,进行了部分修改。英文好的可以直接去官网阅读。
点击阅读官网文档
在使用Elasticsearch SQL前,添加测试数据:
PUT /library/book/_bulk?refresh
{"index":{"_id": "Leviathan Wakes"}}
{"name": "Leviathan Wakes", "author": "James S.A. Corey", "release_date": "2011-06-02", "page_count": 561}
{"index":{"_id": "Hyperion"}}
{"name": "Hyperion", "author": "Dan Simmons", "release_date": "1989-05-26", "page_count": 482}
{"index":{"_id": "Dune"}}
{"name": "Dune", "author": "Frank Herbert", "release_date": "1965-06-01", "page_count": 604}
使用SQL REST API执行SQL:
POST /_sql?format=txt
{
"query": "SELECT * FROM library WHERE release_date < '2000-01-01'"
}
返回内容如下:
author | name | page_count | release_date
---------------+---------------+---------------+------------------------
Dan Simmons |Hyperion |482 |1989-05-26T00:00:00.000Z
Frank Herbert |Dune |604 |1965-06-01T00:00:00.000Z
以上语句是使用Kibana开发工具执行的:
还可以使用SQL CLI来执行SQL语句。 双击elasticsearch-7.10.0\bin目录下的elasticsearch-sql-cli.bat文件,启动服务:
你可以在这里执行SQL查询语句:
SQL语句:
sql> SELECT * FROM library WHERE release_date < '2000-01-01';
执行结果如下: