Неверный JSON при отправке шаблона поиска в ElasticSearch

Я разрабатываю веб-приложение, для которого я запускаю свои шаблоны поиска в 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.

Мой шаблон работает хорошо, когда я использую его как сохраненный шаблон в astic-home/config/scripts. Но я хочу управлять своими шаблонами с помощью JAVA и загружать все шаблоны только во время запуска. Могу ли я получить какую-либо помощь?

0 ответов