Неверный 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 и загружать все шаблоны только во время запуска. Могу ли я получить какую-либо помощь?