match在匹配时会对所查找的关键词进行分词,然后按分词匹配查找,而term会直接对关键词进行查找。一般模糊查找的时候,多用match,而精确查找时可以使用term。但是,对于text类型,且分过词的title字段。下面两种情况,查询的结果是一样的
{
"bool": {
"must": [
{ "term": { "title": "英雄" }},
{ "term": { "title": "联盟" }}
]
}
}
{
"match": {
"title": {
"query": "英雄联盟",
"operator": "and"
}
}
}