一日一技:在ES中使用类似于in的操作

2019-01-09 15:57:28 浏览数 (1)

在SQL中可以使用 in关键字选择多个条件之一。例如:

代码语言:javascript复制
select * from test where id in (1, 2, 3)

相当于:

代码语言:javascript复制
select * from test where id=1 or id=2 or id=3

在ES中,也可以实现类似的功能。不过关键字为 terms:

代码语言:javascript复制
{"query":
  {"bool":
    {"must":[{"match": {"age": 28}},
             {"terms": {"work": ["engineer", "office lady", "teacher"]}}
             ]} 
  }
}

这一段查询的意思是,查询所有年龄为28,并且工作为 engineeroffice lady 或者 teacher之一的人的信息。

这个查询语句中的

代码语言:javascript复制
{"terms": {"work": ["engineer", "office lady", "teacher"]}}

就实现了类似于:

代码语言:javascript复制
work in ('engineer', 'office lady', 'teacher')

的效果。

0 人点赞