andnot
介绍
- 功能:封装多个并发查询并对结果集合进行差集运算的查询模式
- 场景:我收藏的并且尚未购买的宝贝
- 执行逻辑:遍历sub_search1的查询结果集合,如果某个结果的fieldname字段值在sub_search2的查询集合中也存在,那么丢弃该结果,否则留下该结果。
语法
sub_search1 andnot{andnot_clause} sub_search2
- sub_search1和sub_search2
- 二者均可以是atomic、join、merge、and以及andnot中的任意一种类型
- 二者返回的结果可以是异构的
- andnot:
andnotfield=<fieldname>
fieldname
指定进行差集运算的字段fieldname
必须在sub_search1和sub_search2的结果中同时存在,并且类型必须一样
示例
// 查找用户2和用户1购物车中不同种类的商品
search{table=userinfo&keys=2}andnot{andnotfield=catid}search{table=ig_ref_userbkt&keys=1}