Elasticsearch-sql 用SQL查询Elasticsearch语句

来源:互联网 发布:飞利浦脱毛仪 知乎 编辑:程序博客网 时间:2024/06/01 18:31

Elasticsearch-sql 用SQL查询Elasticsearch
转自http://www.cnblogs.com/kangoroo/p/7273493.html

1、SQL查询

安装成功以后我们就可以通过sql查询ES了。

es-sql还提供了web页面,访问方式是http://10.93.18.34:9200/_plugin/sql/(如果你使用head,那么你的head访问应该是http://10.93.18.34:9200/_plugin/head/)

这里的ip和port是你安装es的主机和http端口。

访问到的页面是这样的

那么你现在有两种方式可以执行你的SQL:

1)在搜索框里直接输入你的sql了。(我的版本行尾不要写“;”否则会解析不了SQL)

2)通过http请求如

curl -XPOST http://10.93.18.34:8049/_sql -d ‘SELECT * FROM audit where dDelay=-2053867461’
你会收到一个json格式的返回

复制代码
{“took”:2,”timed_out”:false,”_shards”:{“total”:5,”successful”:5,”failed”:0},”hits”:{“total”:1,”max_score”:12.549262,”hits”:[{“_index”:”audit”,”_type”:”kafka”,”_id”:”AVzzK-h_V9seINxbZ2Ox”,”_score”:12.549262,”_source”:{“timestamp”:”1498726500000”,”dCount”:680008,”dDelay”:-2053867461,”cDelay”:0,”clanName”:”DJ_elk_common”,”checkTime”:1498728360063,”cCount”:0,”pCount”:680008,”topicName”:”DJ_elk_common_clean”,”pDelay”:370356423}}]}}
复制代码
下面我们简单说4种类型的sql的书写方式:

1)query

SELECT * FROM bank WHERE age >30 AND gender = ‘m’
2)aggregation

select COUNT(*),SUM(age),MIN(age) as m, MAX(age),AVG(age)
FROM bank GROUP BY gender ORDER BY SUM(age), m DESC
3)delete

DELETE FROM bank WHERE age >30 AND gender = ‘m’
4)geo

SELECT * FROM locations WHERE GEO_BOUNDING_BOX(fieldname,100.0,1.0,101,0.0)
5)需要指定index+type

SELECT * FROM indexName/type
6)如何指定路由

select /! ROUTINGS(salary) / sum(count) from index where type=”salary”

原创粉丝点击