#每天一个知识点# 我们知道,在sql中,可以用IN来匹配多个值,在ES中,也有terms与之对应。 然而terms匹配数据是"或"的操作,即只要符合其中一个就能匹配上,所以我们不能用terms,只能用match。 我们要匹配多个值要怎么做呢,其实在前一天的示例中我们讲解了怎么查询出仅包含标签id=1的书籍,其中在结尾说过这么一句"同理,可以推广到仅有N个标签的查询,must中包含N个match,filter中labels的长度为N" 此处我们稍微修改一下,将filter去掉,只保留match部分即能实现本期的需求。 需要注意的是,此处显现出了es与sql的差异。在sql中,我们如果写出直译出来的sql就类似与 "select * from tabel where id=1 and id=2",这明显无法查出数据。但在es中,可以对同一个字段进行多次match