首页 > 其他分享 >ES中复杂DSL查询语句不会写怎么办?

ES中复杂DSL查询语句不会写怎么办?

时间:2022-12-07 17:40:35浏览次数:41  
标签:语句 account sumMoney 查询 DSL SQL ES


前言

刚接触ES不久的同学一定都遇到过这样的问题,复杂的查询场景下不知道怎么写DSL查询语句,
今天教大家一个小妙招,解决复杂DSL语句不会写的问题。


一、来吧,展示

巧用大招:
ES7以后已经提供了对sql查询的原生支持,虽然存在部分限制,但已经能适应大部分场景。

DSL查询语句大家可能运用的不太熟悉,SQL查询语句大家应该都非常熟悉了吧。

我们可以先通过SQL查询语句对索引数据进行查询,看查询结果是否满足要求,然后将SQL语句转为DSL语句,
这样就间接完成了复杂DSL编写。

1、 通过SQL查询索引

POST /_sql?format=txt
{
"query": "SELECT account,sum(money) sumMoney FROM order_index group by account order by sumMoney"
}

2、 将SQL语句转为DSL语句

POST /_sql/translate
{
"query": "SELECT account,sum(money) sumMoney FROM order_index group by account order by sumMoney"
}


标签:语句,account,sumMoney,查询,DSL,SQL,ES
From: https://blog.51cto.com/u_15905482/5919823

相关文章