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

时间:2022-06-17
本文章向大家介绍一日一技:在ES中使用类似于in的操作,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

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

select * from test where id in (1, 2, 3)

相当于:

select * from test where id=1 or id=2 or id=3

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

{"query":
  {"bool":
    {"must":[{"match": {"age": 28}},
             {"terms": {"work": ["engineer", "office lady", "teacher"]}}
             ]} 
  }
}

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

这个查询语句中的

{"terms": {"work": ["engineer", "office lady", "teacher"]}}

就实现了类似于:

work in ('engineer', 'office lady', 'teacher')

的效果。