Files
Phraseanet/lib/Alchemy/Phrasea/SearchEngine/Elastic/AST/AndExpression.php
2014-08-25 10:25:38 +02:00

39 lines
782 B
PHP

<?php
namespace Alchemy\Phrasea\SearchEngine\Elastic\AST;
class AndExpression extends Node
{
protected $members = array();
public function __construct($left, $right)
{
$this->members[] = $left;
$this->members[] = $right;
}
public function getMembers()
{
return $this->members;
}
public function getQuery($field = '_all')
{
$rules = array();
foreach ($this->members as $member) {
$rules[] = $member->getQuery($field);
}
return array(
'bool' => array(
'must' => count($rules) > 1 ? $rules : $rules[0]
)
);
}
public function __toString()
{
return sprintf('(%s)', implode(' AND ', $this->members));
}
}