Elasticsearch match、term、filter、query的区别

term是表明彻底匹配,即不进行分词器分析,文档中必须包含整个搜索的词汇web

match和term的区别是,match查询的时候,elasticsearch会根据你给定的字段提供合适的分析器,而term查询不会有分析器分析的过程elasticsearch

match查询至关于模糊匹配,只包含其中一部分关键词就行svg

match查询会先对搜索词进行分词,分词完毕后再逐个对分词结果进行匹配,相对于term的精确搜索,match是分词匹配搜索xml

使用场景排序

简单来讲,全文检索和须要计算相关度得分来作排序的场景,使用query文档

其余状况都使用filter过滤查询it

  1. query查出来的结果包括数据表里面符合条件的文档信息以及相关度得分(_score)
  2. filter查出来的结果要么是数据表里面符合条件的文档信息,要么为null,而且不会计算相关度得分

参考文章
https://www.jianshu.com/p/1263146a5387ast