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

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

前言


刚接触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"
}
目录
相关文章
|
JSON 自然语言处理 数据格式
DSL语法
DSL语法
149 0
|
7月前
|
自然语言处理 索引
es-DSL语句基础操作(Elasticseach)
es-DSL语句基础操作(Elasticseach)
160 1
|
SQL 测试技术 数据处理
SQL语法基础——SQL查询语句的执行顺序解析(建议收藏)
SQL语法基础——SQL查询语句的执行顺序解析(建议收藏)
101 0
|
SQL JSON Java
es应用笔记2-sql查询
es应用笔记2-sql查询
240 0
es应用笔记2-sql查询
【Django学习】(七)过滤表达式&关联查询
【Django学习】(七)过滤表达式&关联查询
|
SQL 自然语言处理 索引
DSL的诞生 | 复杂sql转成Elasticsearch DSL深入详解
源自死磕ElasticsearchQQ群(626036393)中的一个问题: 问题如下: where (position=ES or work=ES or content=ES) and academic=本科 and (city=北京 or city=深圳) 1 怎么构建ES的查询条件? 我的问题拆解与实现如下:
1770 0
DSL的诞生 | 复杂sql转成Elasticsearch DSL深入详解
|
编解码 前端开发 JavaScript
es6 语法解析
虽然目前并不是所有浏览器都能兼容ES6全部特性,但越来越多的程序员在实际项目当中已经开始使用ES6了。所以就算你现在不打算使用ES6,但为了看懂别人的你也该懂点ES6的语法了...
88 0
|
开发者 Docker 容器
DSL 语法介绍|学习笔记
快速学习 DSL 语法介绍
DSL 语法介绍|学习笔记
|
SQL 安全 前端开发
ES中SQL查询详解
ES中SQL查询详解
1126 0
ES中SQL查询详解

相关课程

更多