执行SQL语句
# SQL语句支持
有个别用户期望使用RestLowLevelClient的功能执行已有SQL语句,实现类似在xpack或者es-head等插件上执行DSL的效果, 所以我们对此封装了开箱即用的执行SQL-API
API
// 执行静态SQL语句 索引名以SQL中where条件中指定的为准
String executeSQL(String dsl);
1
2
3
2
3
##使用
@Test
public void testSQL() {
// 注意 sql中的from后面跟的是要被查询的索引名,也可以是索引别名(效果一样) 由于索引名可能会变,所以此处我采用别名ee_default_alias进行查询
String sql = "select count(*) from ee_default_alias where star_num > 0";
String jsonResult = documentMapper.executeSQL(sql);
// 注意,执行后是以JSON格式返回,由用户按需自行解析
System.out.println(jsonResult);
}
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
温馨提示
尽管ES提供了对SQL的支持,但功能比较简单,用过的都懂,此功能仅是为了满足少数用户的需求场景,就好比MP已经支持了开箱即用的简单SQL查询,用户基本上很少会再去 手写SQL了,何况它这个SQL支持的功能过于简单,拓展性也很差,不太建议使用.
帮助我们改善此文档 (opens new window)
上次更新: 2024/05/18