本节主要学习ES匹配查询中的布尔查询以及布尔查询中比较特殊的filter查询及其原理。 复合搜索,顾名思义是一种在一个搜索语句中包含一种或多种搜索子句的搜索。 布尔查询是常用的复合查询,它把多个子查询组合成一个布尔表达式,这些子查询之间的逻辑关系是"与",即所有子查询的结果都为true时布尔查询结果才为真。布尔查询还可以按照各个子查询的具体匹配程度对文档进行打分计算,除了比较特殊的must not查询和filter查询之外,这个后面会详解。 布尔查询支持的子查询主要有4种,各子查询的名称和功能如下表: 子查询名称功能 must 必须匹配该查询条件 should 可以匹配该查询条件 must not 必须不匹配该查询条件,且不进行打分计算 filter 必须匹配过滤条件,且不进行打分计算 下面将逐一进行讲解 2.1、must查询 当查询中包含must查询时,相当于逻辑查询中的"与"查询。命中的文档必须匹配该子查询的结果,并且ES会将该子查询与文档的匹配程度值加入总得分里。must搜索包含一个数组,可以把其他的搜索匹配查询及布尔查询放入其中。...