我正在使用 elasticsearch javascript API 1.5,因为目前 1.5 是 AWS elasticsearch 支持的最新版本的 ElasticSearch。
给定以下模板,我想使用的 javascript 中的函数可以工作
{
_source: ['inner_hits'],
size: `{{size}}{{^size}}10{{/size}}`,
from: `{{from}}{{^from}}0{{/from}}`,
filter: {
prefix: {
series: `{{series}}`,
isbn: `{{isbn}}`,
},
},
}
当前过滤器有效,但不允许将“系列”或“isbns”数组传递到过滤器中。我不能使用以下过滤器对象
filter: {
terms: {
series: [`{{series}}`],
isbn: [`{{isbn}}`],
},
},
因为如果没有传入 series 或 isbn,则没有 book 匹配空字符串,即使我传入了默认值,它也必须匹配每一本书,这意味着它必须包含所有 series 和所有 isbns。
理想情况下,我只会编写一个普通的 mustache 文件,并按照此处描述的方式使用预先注册的模板。
这描述了在集群上存储模板的两种方法,首先将它们存储在 config/scripts 目录中,我无法在 AWS elasticsearch 上访问该目录,其次,将模板作为字符串传递给名为“.scripts”的索引”。
对于第二个选项,我不知道如何使用 elasticsearch.js api 执行此操作,因此我必须以另一种方式执行此操作,并且我在网上找不到此示例。