如果我提供一个空的参数(请参阅下文),我希望将所有文档都保存在elasticsearch中。我该如何实现?一种解决方案是,我可以写出数组中存在的所有类别。但是我有100多个类别,这不是一个好的解决方案。有人可以帮我吗?如果数组为空,是否可以忽略这些术语?
POST _scripts/test{"script": {
"lang": "mustache",
"source": {
"query": {
"bool": {
"must": {
"match_all": {}
},
"filter": {
"terms": {
"category": [
"{{#category}}",
"{{.}}",
"{{/category}}"
]}}}}}}}
如果执行此查询,结果将为空。
GET poi/_search/template{
"id": "test",
"params": {
"category" : [""]
}}
实现此目标的最佳方法是使用JSON array:
POST _scripts/test { "script": { "lang": "mustache", "source": { "query": { "bool": { "must": { "match_all": {} }, "filter": { {{#category}} "terms": { "category": {{toJson}}category.values{{#toJson}} } {{/category}} } } } } } }
然后您可以像这样执行此搜索模板:
GET poi/_search/template { "id": "test", "params": { "category" : { "values": ["cat1", "cat2", "cat3"] } } }
如果您不想指定任何类别,例如:
GET poi/_search/template
{
"id": "test",
"params": {
}
}