如果存在,Elasticsearch按字段查找。原生或Yii2

时间:2016-07-27 10:00:58

标签: elasticsearch

我如何为下一个案例创建查询: 我有几种类型:帖子,评论,用户和其他 并且需要通过room_id IN(1,2,3,4)和query = ***进行搜索 但如果字段room_id不存在 - 只需跳过它。例如,键入" user"没有room_id,我只想通过查询选择所有用户数据。但是如果这个字段存在 - 那么请检查room_id

我使用PHP + Yii2,但本机代码也可以

如何创建此查询?感谢

PS:更简单的描述 需要根据不同的条件选择不同类型的数据 例: 从帖子,评论,用户中选择*(post.id> 10 OR comment.count< 30 OR user.age = 15)AND title =' test'

1 个答案:

答案 0 :(得分:0)

'filter' => [
  'or' => [
    ['missing' => ['field' => 'room_id']],
    ['terms' => ['room_id' => $roomIds]]
  ],
]

它的工作正确