SQL access | Elasticsearch Reference [7.6] | Elastic

X-Pack 包含了一个 SQL 功能,可以针对 Elasticsearch 索引执行 SQL 查询,并以表格形式返回结果。

该 SQL 功能提供了 CLIREST APIJDBC 等的支持,主要用于对数据查询功能的简化。

类似如下:

POST /_sql?format=txt
{
    "query": "SELECT * FROM library WHERE release_date < '2000-01-01'"
}

Elastcsearch SQL 语法

SQL Language | Elasticsearch Reference [7.6] | Elastic

通过 CLI 使用

Elasticsearch 自带一个 CLI 脚本,可以在其 bin 目录下运行 SQL CLI:

# 默认连接 <http://localhost:9200>
./bin/elasticsearch-sql-cli
# 连接指定 url
./bin/elasticsearch-sql-cli <https://some.server:9200>

sql> SELECT * FROM library WHERE page_count > 500 ORDER BY page_count DESC;

通过 REST API 使用

SQL REST API | Elasticsearch Reference [7.6] | Elastic

POST /_sql?format=txt
{
    "query": "SELECT * FROM library ORDER BY page_count DESC",
    "filter": {
        "range": {
            "page_count": {
                "gte" : 100,
                "lte" : 200
            }
        }
    },
    "fetch_size": 5
}

通过 JDBC 使用