如何解决如何在elasticsearch搜索模板中使_source字段动态化?
"_source": ["name","age"]
并且在使用 search templates
时,我们必须在将搜索模板插入 ES 集群时设置 _source 字段值。
"_source": ["name","age"]
但搜索模板的问题在于它总是会返回 name and age
并且要获取其他字段,我们必须相应地更改我们的搜索模板。
有什么办法可以从客户端传递搜索字段,以便它只返回响应用户询问的字段? 我只在一个领域实现了这一点,就像你这样做
"_source": "{{field}}"
然后通过模板搜索索引时,您可以这样做
POST index_name/_search/template
{
"id": template_id,"params": {
"field": "name"
}
}
此搜索查询返回 name
字段作为响应,但我找不到以数组或其他格式传递它的方法,因此我可以获得多个字段。
解决方法
绝对!!
您的搜索模板应如下所示:
"_source": {{#toJson}}fields{{/toJson}}
然后你可以这样称呼它:
POST index_name/_search/template
{
"id": template_id,"params": {
"fields": ["name"]
}
}
它要做的是transform the params.fields
array into JSON,因此生成的查询将如下所示:
"_source": ["name"]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。