我正在开发一个webapp,我在启动时将我的搜索模板推送到ES并使用它们在运行时形成弹性搜索查询。我有一个要求,其中,我不知道要应用的过滤器数量。创建了一个搜索模板,如 -
{
"filters" : {
{{#toJson}}
clauses
{{/toJson}}"
}
}
搜索会像这样 -
获取_search / template
{
"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管理我的模板,只在启动期间推送所有模板。 我能得到任何帮助吗?