elasticsearch 如何使用OpenDistro执行参数化SQL

isr3a4wc  于 2023-04-05  发布在  ElasticSearch
关注(0)|答案(1)|浏览(198)

我们使用OpenDistro和ElasticSearch。在执行查询之前,它被编译并转换为DSL格式。目前我们传递的是静态SQL查询,每个查询在执行之前都被编译。
让我们以SQL为例:Select * from employee where name='abc';
此查询执行多次,每次执行时只有名称不同。
想知道是否有一种方法可以执行查询,如:select * from employee where name=??在运行时被替换为参数。
这将导致查询仅编译一次,并且在执行期间仅替换参数。
我查看了opendistro的文档,但找不到任何这样的例子。

c7rzv4ha

c7rzv4ha1#

最后,在做了更多的研究之后,我发现了ElasticSearch上的documentation link。我们可以按以下格式执行参数化查询:

POST /_sql?format=txt
{
    "query": "SELECT * FROM employee WHERE name= ?",
    "params": ["Frank Herbert"]
}

相关问题