赞
踩
term是代表完全匹配,即不进行分词器分析,文档中必须包含整个搜索的词汇
match和term的区别是,match查询的时候,elasticsearch会根据你给定的字段提供合适的分析器,而term查询不会有分析器分析的过程
match查询相当于模糊匹配,只包含其中一部分关键词就行
match查询会先对搜索词进行分词,分词完毕后再逐个对分词结果进行匹配,相对于term的精确搜索,match是分词匹配搜索
这里以query检索下的must查询方式和filter过滤检索做对比,两者在查询数据后得出的结果(只看查出来的数据表里面的文档信息)是一致的,但是它们的查询过程不一样.
举个例子:在同一个 index(数据库)下的同一个type(数据表)查询符合条件的name和age.
简单来说,全文检索和需要计算相关度得分来做排序的场景,使用query
其他情况都使用filter过滤查询
Elasticsearch下query和filter的区别
吃透 | Elasticsearch filter和query的不同
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。