Elasticsearch2.x Filter执行流程及缓存原理

本文详细介绍了Elasticsearch2.x中Filter的执行流程和缓存原理,包括Filter的Query和Filter Context,基本查询过程,位图(bitset)的创建和迭代,以及Filter Cache的工作机制。强调了Filter在非评分查询中的作用,以及如何通过位图优化查询效率和缓存策略。
摘要由CSDN通过智能技术生成

一、基本概念

这里说的Filter非Post filter,关于Post filter这里不做介绍,我们主要关注的是在执行一个评分查询前执行的Filter。

在讲述ES Filter的执行流程和缓存原理之前,有几个概念我们必须要清楚。

Query and Filter context 

官网地址:https://www.elastic.co/guide/en/elasticsearch/reference/current/query-filter-context.html

1. Query Context

所谓查询上下文,是指包含一个或多个查询条件的逻辑组合,QueryContext里包含的的单个查询表示的含义是“文档和该查询条件的匹配度有多大”,针对QueryContext里的每一个查询都会计算出一个_score来表示匹配度,整个QueryContext的匹配度评分等于其包含所有单个查询评分的总和,所以针对一个Query我们更多关注的是匹配度。

2.Filter Context

过滤器上下文和查询上下文类似,都是由1个或多个子查询(Query clause) 组成的。他们的区别在于Filter不会计算文档得分,它代表的含义是“文档和该查询条件是否匹配”,所以针对一个Filter我们更多关注的是能否可以过滤掉文档,返回的结果只能是可以或者不可以(true or false)。

二、基本查询

在写基本查询前我们先创建一个索引(my_store)和一个类型(products)并插入4条product数据

curl -XPUT http://localhost:9200/my_store
curl -XPOST http://localhost:9200/my_store/products/_mapping -d '
{
	"products": {
		"properties": {
			"productID": {
				"type
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值