Elasticsearch查询实现类似MySQL的in/not in
别问我为什么要单独一篇文章写这个,我会告诉你这问题困扰我很久了?搞定后的酸爽谁试谁知道
数据说明
假如es里有index为lion_db_vdoid, type为t_vdoid
有两条记录,字段vdoid分别为1和2
实现IN
查询vdoid
字段包含2,3的数据
"query": {
"terms": {
"vdoid": [
"2", "3"
]
}
}
实现NOT IN
查询vdoid
字段不等于2,3的数据
"query": {
"bool": {
"must_not": [
{
"terms": {
"vdoid": [
"2", "3"
]
}
}
]
}
}
启发
灵活使用must_not,结合其他系统参数,达到不可思议的结果