elasticsearch dsl写起来,还是比较麻烦的,特别是聚合的时候,推荐以下方式转换。
1,命令行下确定sql能执行
[root@bigserver4 ~]# cd /usr/share/elasticsearch/bin
[root@bigserver4 bin]# ./elasticsearch-sql-cli
asticElasticE
ElasticE sticEla
sticEl ticEl Elast
lasti Elasti tic
cEl ast icE
icE as cEl
icE as cEl
icEla las El
sticElasticElast icElas
las last ticElast
El asti asti stic
El asticEla Elas icE
El Elas cElasticE ticEl cE
Ela ticEl ticElasti cE
las astic last icE
sticElas asti stic
icEl sticElasticElast
icE sticE ticEla
icE sti cEla
icEl sti Ela
cEl sti cEl
Ela astic ticE
asti ElasticElasti
ticElasti lasticElas
ElasticElast
SQL
6.8.13
sql> SELECT * from lianshan_test limit 1;
test_id | test_name
---------------+-------------------------------
28 |test update 2020-11-18 17:30:27
sql> SELECT * FROM lianshan_test WHERE MATCH(test_name, 'test');
test_id | test_name
---------------+-------------------------------
28 |test update 2020-11-18 17:30:27
35 |es test 2020-11-18 17:30:14
32 |es test 2020-11-17 20:16:51
33 |es test 2020-11-17 20:17:33
34 |es test 2020-11-18 16:46:35
# curl -XPOST "http://10.0.10.245:19200/_xpack/sql/translate?pretty" -H "Content-Type: application/json" -d '
> {
> "query": "SELECT * from lianshan_test limit 1"
> }'
{
"size" : 1,
"_source" : {
"includes" : [
"test_name"
],
"excludes" : [ ]
},
"docvalue_fields" : [
{
"field" : "test_id",
"format" : "use_field_mapping"
}
],
"sort" : [
{
"_doc" : {
"order" : "asc"
}
}
]
}
不同的版本写法是不一样的,请参考:
翻译:https://www.elastic.co/guide/en/elasticsearch/reference/6.8/sql-translate.html
执行:https://www.elastic.co/guide/en/elasticsearch/reference/6.8/sql-getting-started.html
2,kibana中执行sql,并转换
转载请注明
作者:海底苍鹰
地址:http://blog.51yip.com/elasticsearch/2511.html

