我正在用bool查询为elasticsearch构建一个带有mustache的搜索模板,但我的条件块有问题
我已经编写了模板的这一部分:
\"must\":[
{{#query_string}}
{\"multi_match\":{
\"query\":\"{{query_string}}\",
\"fields\": [
\"cdm_cours_2_title.text^5\",
\"cdm_cours_4_resume.text\",
\"cdm_cours_5_description.text\"
]
}},{{/query_string}}
{{#title}}
{\"match\":{\"cdm_cours_2_title.text\":\"{{title}}\"}},
{{/title}}
{{#resume}}
{\"match\":{\"cdm_cours_4_resume.text\":\"{{resume}}\"}},
{{/resume}}
{{#description}}
{\"match\":{\"cdm_cours_5_description.text\":\"{{description}}\"}}
{{/description}}
]
}},
字符串
但是问题是我希望能够为这个查询的一个、零个或多个参数设置值,而逗号把事情搞砸了。我不知道如何才能正确地做到这一点。在这个配置中,如果你不设置最后一个字段,它就不起作用,我不知道如何处理。
1条答案
按热度按时间bvn4nwqk1#
解决这个问题的一个常见方法是让你的模板支持一个查询数组,并指定哪一个是
last
。在这里,模板将循环遍历
queries
数组,并且逗号将被添加当且仅当查询不是标记为数组中的最后一个:字符串
然后你需要像这样调用你的查询:
型
您可以指定任意数量的条件和任何顺序,但最后一个必须指定
last: true
。