我在elasticsearch中有一个字段,它被定义为一个带有以下映射的数组:
"skills":{"type":"text","term_vector": "yes"}
它包含多种技能。假设我想匹配多种技能,并检查哪个文档包含技能,我将如何在单个函数中执行此操作?
例如,假设我需要搜索“python”,“ruby”和“C”等技能,而不是编写3个匹配查询,有没有什么方法可以在1个查询中组合,比如multi_match查询用于匹配多个字段?
答案 0 :(得分:0)
multi_match
在这里没有帮助,因为您要搜索的内容都在同一个字段中。假设您正在使用标准分析器或类似的分析器进行分析,那么简单match
query就应该完成这项工作:
"query": {
"match" : {
"skills" : "python ruby c"
}
}
使用bool
query组合子查询将是另一种选择。