通过在filter参数中指定查询,可以使用标准Elasticsearch查询DSL过滤SQL将运行的结果。
POST /_sql?format=txt
{
"query": "SELECT * FROM library ORDER BY page_count DESC",
"filter": {
"range": {
"page_count": {
"gte" : 100,
"lte" : 200
}
}
},
"fetch_size": 5
}
返回的结果:
author | name | page_count | release_date |
---|---|---|---|
Douglas Adams | The Hitchhiker’s Guide to the Galaxy | 180 | 1979-10-12T00:00:00.000Z |
标准查询DSL过滤的一种有用且不太明显的用法是通过特定的路由关键字搜索文档。 由于Elasticsearch SQL不支持路由参数,因此可以为_routing字段指定术语过滤器:
POST /_sql?format=txt
{
"query": "SELECT * FROM library",
"filter": {
"terms": {
"_routing": ["abc"]
}
}
}