2

我正在开发一个 web 应用程序,为此我在启动期间将我的搜索模板推送到 ES,并在运行时使用它们来形成弹性搜索查询。我有一个要求,我不知道要应用的过滤器数量。创建了一个搜索模板,例如 -

{
    "filters" : {
            {{#toJson}}
            clauses
            {{/toJson}}"            
        }
}

搜索将像这样进行 -

获取_搜索/模板

{
    "id": "template-id",
    "params": {
        "clauses": {
             "filters" : {
            { "match": { "user" : "foo" } },
            { "match": { "user" : "bar" } }
        }
   }
}

这会将结果呈现为 -

{
    "filters":{
      "filters":{
          "match" : {
                "user" : "foo"
            }
          },
          {
            "match" : {
                "user" : "bar"
            }
          }
       }
   }

正如 ES 文档所建议的那样 - https://www.elastic.co/guide/en/elasticsearch/reference/current/search-template.html

但是,由于它是一个无效的 JSON,它不允许我将模板推送到 ES。

当我将模板用作 elastic-home/config/scripts 中的存储模板时,我的模板运行良好。但我想用 JAVA 管理我的模板,并且只在启动期间推送所有模板。我能得到任何帮助吗?

4

0 回答 0