跳到主要内容

执行命令

使用 JdbcTemplate 可以直接执行 ElasticSearch 命令并进行读写数据操作,在此之前请确保已经正确配置好 ElasticSearch 数据源,具体请参考 ElasticSearch 驱动使用指南

提示

更多使用方式请参考 JdbcTemplate 类,在使用过程中下面两个特性由于驱动原因无法支持:

  • 批量化
  • 存储过程

JdbcTemplate 接口

定义 JdbcTemplate,使用创建好的 DataSource 或 Connection 作为参数传入。

创建 JdbcTemplate
// 2,创建 Session
JdbcTemplate jdbc = new JdbcTemplate(dataSource);
或者
JdbcTemplate jdbc = new JdbcTemplate(connection);

插入数据

插入数据
// 直接命令方式
jdbc.execute("POST /my_index/_doc/1 { \"name\": \"mali\", \"age\": 26 }");
// 参数化命令方式
jdbc.execute("POST /my_index/_doc/1 { \"name\": ?, \"age\": ? }", new Object[] { "mali", 26 });

查询数据

查询列表
// 查询所有
List<Map<String, Object>> list = jdbc.queryForList("POST /my_index/_search { \"query\": { \"match_all\": {} } }");
条件查询
// 查询特定条件
Map<String, Object> mali = jdbc.queryForMap("POST /my_index/_search { \"query\": { \"term\": { \"name\": \"mali\" } } }");
String json = (String) mali.get("_DOC");

更新数据

更新数据
// 更新年龄
jdbc.execute("test.user_info.update({name: 'mali'}, {$set: {age: 27}})");

删除数据

删除数据
// 删除特定记录
jdbc.execute("test.user_info.remove({name: 'mali'})");