1

我正在使用 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 执行此操作,因此我必须以另一种方式执行此操作,并且我在网上找不到此示例。

4

0 回答 0