在Elasticsearch中将多个字符串匹配到单个字段

时间:2017-06-23 09:42:34

标签: elasticsearch lucene

我在elasticsearch中有一个字段,它被定义为一个带有以下映射的数组:

"skills":{"type":"text","term_vector": "yes"}

它包含多种技能。假设我想匹配多种技能,并检查哪个文档包含技能,我将如何在单个函数中执行此操作?

例如,假设我需要搜索“python”,“ruby”和“C”等技能,而不是编写3个匹配查询,有没有什么方法可以在1个查询中组合,比如multi_match查询用于匹配多个字段?

1 个答案:

答案 0 :(得分:0)

multi_match在这里没有帮助,因为您要搜索的内容都在同一个字段中。假设您正在使用标准分析器或类似的分析器进行分析,那么简单match query就应该完成这项工作:

"query": {
    "match" : {
        "skills" : "python ruby c"
    }
}

使用bool query组合子查询将是另一种选择。