00:00
接下来我们继续来说一下结果过滤,那参照官方文档,那们这一块呢,有解释这个filter的例子,包括我们来看它上面的解释,他说我们以前用的这个mask should的must note等等这些元素啊,特别是我们在使用mask或者should的时候,如果我们满足这些条件的这个文档,满足了这个条件的这些文档,那我们这个mask和竖的都会贡献这个文档的什么相关性得分,也就是说mask和树的条件满足,就会提升我们这个相关性得分,我们也看到了,只要我们这块mask树的,特别是我们这个树的满足了,那就会有相关性得分,而且我们mustk本来进行这样慢匹配的时候,它就会来计算相关性得分,但是呢,我们这里边有一个must note,我们刚才说的这个master note,它是必须。不怎么样,它呢会被当成是一个filter过滤器,而这个filter呢,它的最大的作用就是它不会去来贡献我们这个文档的得分,也就是一句话,Filter跟以前的这些查询一样,其实它都能帮我们来进行查询,但filter呢,没有文档的相关性得分,我们这些mask和数的会贡献相关性得分。来举一个例子,Get来进行查询,我这写一个search,那比如我想查年龄20~30之间的所有人,那我怎么查呢?我们以前是这么来查,我来写一个query。
01:31
比如我来组合多查询,我来写一个布尔,布尔里边我写第一个mask,那必须满足,满足什么呢?我们有一个条件叫range range呢就是一个区间,我让我们的这个年龄区间必须GTE,就是大于等于,大于等于什么,比如是18,我们的LTE到30之间,这时我们的年龄必须是这个区间,而且如果我们还有什么要求,我们可以继续写上,比如mask必须匹配。
02:02
我们来写一个match比匹配什么呢?我们的这个地址里边包含密的,好我们来进行查询,走我们现在呢,查到一条结果,这条结果28满足条件,包括我们只想要这个18~30之间的,我们不要match,好我们把这个去掉,我们来进行查询,我们找到了498条记录,那这些记录呢,都满足要求,而且呢,每一个都有我们的这个相关性得分,这些得分呢,现在都是1.0,因为我们现在是按照年龄进行区间检索的,我们说这个mask还可以替换成我们说的filter进行过滤,我们来看两个有什么区别,杠search。同样的我们来进行查询,Quary,我们这个查询呢,来写上我们这个查询,我们现在来使用我们布尔组合多查询,那以前呢用mask,那现在呢,替换成filter叫过滤,那过滤也一样,我们也有一个叫RA过滤,跟我们这些匹配唯一的不同是什么?我来举一个例子,把这个爱放到这儿,还是18~30。
03:09
我们来进行查询,走,我们还是查询498条记录,但是我们发现每一条记录呢,我们最大的得分都是零,这一块也是零,所以我们这一块没有贡献相关性得分,也是一句话,我们以前的这些检索利用filter都可以做得到,但是呢,Filter不会计算我们的相关性得分,包括呢,我们这个filter如果用在以前的场景,比如我们在布尔组合多条件查询的时候,除了能组合数的外,我们还可以组合菲,那这个菲呢,在这一块就可以做最终的这个结果过滤,我们前面查了多少条记录,再来进行过滤,按照我们的这个年龄区间,比如我们现在H,我们必须呢,要18~30之间的。好,我们来进行查询走。
04:02
那么查到的结果呢,都会满足我们filter指定的条件,同样跟must都是来进行查询,都能完成相同的功能,只不过呢,它不会计算相关性得分,它会直接将我们不满足filter的东西给它过滤掉,就像文档里边说的跟master not一样,正好呢,这也是我们这个布组合多条件查询里边们多个查询里边我们都可以写这几种filter should的must not和must。
我来说两句