elasticsearch核心知识--39.filter与query对比:相关度,性能
2018-03-28 11:48
399 查看
针对使用filter与query的性能对比。对于query会计算其相关度,并且会进行排序。而filter不会去计算分数,所以性能会好。
filter,不需要计算相关度分数,不需要按照相关度分数进行排序,同时还有内置的自动cache最常使用filter的数据
query,相反,要计算相关度分数,按照分数进行排序,而且无法cache结果
filter,不需要计算相关度分数,不需要按照相关度分数进行排序,同时还有内置的自动cache最常使用filter的数据
query,相反,要计算相关度分数,按照分数进行排序,而且无法cache结果
1、filter与query示例 PUT /company/employee/2 { "address": { "country": "china", "province": "jiangsu", "city": "nanjing" }, "name": "tom", "age": 30, "join_date": "2016-01-01" } PUT /company/employee/3 { "address": { "country": "china", "province": "shanxi", "city": "xian" }, "name": "marry", "age": 35, "join_date": "2015-01-01" } 搜索请求:年龄必须大于等于30,同时join_date必须是2016-01-01 GET /company/employee/_search { "query": { "bool": { "must": [ { "match": { "join_date": "2016-01-01" } } ], "filter": { "range": { "age": { "gte": 30 } } } } } } 2、filter与query对比大解密 filter,仅仅只是按照搜索条件过滤出需要的数据而已,不计算任何相关度分数,对相关度没有任何影响 query,会去计算每个document相对于搜索条件的相关度,并按照相关度进行排序 一般来说,如果你是在进行搜索,需要将最匹配搜索条件的数据先返回,那么用query;如果你只是要根据一些条件筛选出一部分数据,不关注其排序,那么用filter 除非是你的这些搜索条件,你希望越符合这些搜索条件的document越排在前面返回,那么这些搜索条件要放在query中;如果你不希望一些搜索条件来影响你的document排序,那么就放在filter中即可 3、filter与query性能 filter,不需要计算相关度分数,不需要按照相关度分数进行排序,同时还有内置的自动cache最常使用filter的数据 query,相反,要计算相关度分数,按照分数进行排序,而且无法cache结果
相关文章推荐
- ElasticSearch37:初识搜索引擎_query和filter深入对比揭秘:相关度、性能
- elasticsearch核心知识--46.scroll技术滚动搜索大量数据以及和FromSize分页的本质区别和性能
- elasticsearch核心知识--44.内核之query phase和fetch phase的理解
- elasticsearch核心知识--22.mget批量查询api以及性能优化
- elasticsearch核心知识--30.分页搜索以及deep paging性能问题深度理解和es中聚合aggregation的分组可能结果不准确的原因
- elasticsearch核心知识--43.关于内核知识doc_value的理解
- elasticsearch核心知识---48.内核级知识点:深入type底层数据结构
- elasticsearch核心知识---50.定制化自己的dynamic mapping策略
- elasticsearch核心知识--9.shard&replica机制再次梳理以及单node环境中创建index图解
- Redis核心知识之—— 时延问题分析及应对、性能问题和解决方法【★★★★★】
- elasticsearch核心知识--33.倒排索引核心原理以及normalization(标准化-时态转换,复数,同义词,大小写等)
- es核心知识篇学习之Elasticsearch 06 ---elasticsearch有六种搜索方式
- elasticsearch核心知识--10.图解2个node环境下replica shard是如何分配的
- elasticsearch核心知识--41.如何将一个string field索引两次来解决字符串排序问题
- 谁更强?ARM Cortex A8/A9核心性能对比
- elasticsearch核心知识--7.aggregation的 嵌套聚合,下钻分析,聚合分析[aggregation和ranges]
- elasticsearch核心知识--36._手动建立和修改mapping以及定制string类型数据是否分词或者是否被检索
- elasticsearch核心知识--5.集群健康检查(green yellow red),文档CRUD
- elasticsearch核心知识--17.剖析Elasticsearch并发冲突问题和深度图解剖析悲观锁与乐观锁两种并发控制方案
- elasticsearch核心知识--19.基于external version进行乐观锁并发控制