如何使用 OpenDistro 执行参数化 SQL

问题描述 投票:0回答:1

我们正在使用带有弹性搜索的 OpenDistro。在执行查询之前,它会以 DSL 格式进行编译和翻译。目前我们正在传递静态 SQL 查询,每个查询在执行前都经过编译。

举个例子 SQL:

Select * from employee where name='abc';

此查询被执行多次,每次执行的唯一名称不同。

想知道是否有一种方法可以执行如下查询:

select * from employee where name=?
并且
?
在运行时被替换为参数。

这将导致只编译一次查询,并且在执行期间只会替换参数。

我查看了 opendistro 的文档,但找不到任何示例。

java elasticsearch spring-data-elasticsearch elasticsearch-opendistro
1个回答
0
投票

最后在做了更多研究之后,我找到了弹性搜索上的文档链接。我们可以执行以下格式的参数化查询:

 POST /_sql?format=txt
{
    "query": "SELECT * FROM employee WHERE name= ?",
    "params": ["Frank Herbert"]
}
© www.soinside.com 2019 - 2024. All rights reserved.