public function filter($filter = [], $mode = Filter::MODE_INCLUDE)
{
if (!$filter) {
unset($this->query['body']['filter']);
return $this;
}
if ($filter instanceof Filter) {
$filter = $filter->makeQuery();
}
$map = [Filter::MODE_INCLUDE => 'must', Filter::MODE_EXCLUDE => 'must_not', 'should' => 'should'];
$mode = $map[$mode];
$this->merge($filter, $mode);
return $this;
}