关于ES的匹配查询,之前match了一个人名,有数据返回,但仔细看并不包含这个人名
GET test1/doc/_search
{
"query":{
"match":{
"name":"张三"
}
}
}
ES会自动做分词,将“张三”分为张和三,也就是所有姓张的人都有可能匹配到。
GET test1/doc/_search
{
"query":{
"match_phrase": {
"name": "张三"
}
}
}
"match_phrase"是短语查询,其中的内容不会被进一步分词。也可以匹配一个句子,这样,只有文档中存在完整的“张三回家”短语时才会匹配到。
"query": {
"match_phrase": {
"title": "张三回家"
}
}