1、背景
在es
中,有些时候我们知道sql
语句是怎么写的,但是如果我想通过dsl
来实现,那么该如何处理呢?其中在es
中提供了将sql
转换成dsl
的api,此处我们来简单使用下。
2、准备数据
2.1 mapping
PUT /index_translate
{
"mappings": {
"properties": {
"month": {
"type": "keyword"
},
"brand": {
"type": "keyword"
},
"salesVolume": {
"type": "integer"
}
}
}
}
2.2 插入数据
PUT /index_translate/_bulk
{"index":{"_id":1}}
{"month":"2023-01","brand":"宝马","salesVolume":100}
{"index":{"_id":3}}
{"month":"2023-02","brand":"大众","salesVolume":80}
{"index":{"_id":4}}
{"month":"2023-02","brand":"宝马","salesVolume":20}
3、使用sql实现一个简单的group by 操作
1、sql
POST _sql?format=txt
{
"query": """
select count(*), brand from index_translate where salesVolume>=10 group by brand having count(*) > 1
"""
}
注意:
并不是所有的sql语法都是支持的。
2、转换成dsl
POST _sql/translate
{
"query":"select count(*), brand from index_translate where salesVolume>=10 group by brand having count(*) > 1"
}
3、运行结果
文章来源:https://www.toymoban.com/news/detail-642841.html
4、参考文档
1、https://www.elastic.co/guide/en/elasticsearch/reference/current/sql-translate.html文章来源地址https://www.toymoban.com/news/detail-642841.html
到了这里,关于es中将sql转换成dsl的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!