ES搜索“其它”选项
情景再现:

如图,搜索“干预类型”。最后一项“其他”表示除了前面列举的其他数据。
如果用SQL筛选“其他”,写出来大致是这样:
Select * fromtablewheretypenot in (‘药物’,’生物制品’,’混合疗法’……)
这样写勉强还好。
但是,既然提到了ES,我们就可以在索引层下功夫。
在建立索引的时候,专门处理该字段,凡事不属于上面列出的类型,都标记为‘其他’,可以这样写:
function processType($type){$type_list = ['药物','生物制品','混合疗法'...];if(!in_array($type,$type_list)){$type = '其他';}return $type;}
然后,“其他”就可以和其他的筛选项一起愉快的筛选了。
