跳到主要内容

参数与规则

通用规则

参数绑定和条件展开在命令发送到 Elasticsearch 之前完成,不要求使用 SQL。JdbcTemplate、方法注解和 Mapper 文件都应书写原生命令并绑定参数,用法见参数传递

例如,下面的原生命令通过参数传值,不拼接用户输入:

GET /user_info/_count {"query":{"bool":{"filter":[{"term":{"id":#{id}}},{"term":{"name":#{name}}}]}}}

@{if, 条件, 命令片段} 可按条件选择命令或片段,只有选中的分支会绑定参数;展开后必须是合法的 Elasticsearch 命令。

SQL 片段规则

ANDORSETIN 规则生成 SQL 片段,不会自动转换成 Elasticsearch 命令。特别是 @{in} 生成带圆括号、逗号分隔的参数列表,不等于原生命令的集合参数。

应按原生命令语法绑定值,需要选择片段时使用通用条件规则。这是生成语法的适用范围,不是参数绑定或规则展开能力缺失。