public function testMerged() { $query = new Simples_Request_Search_Builder_Query(); $query->match('scharrier')->in('username'); $res = $query->to('array'); $expected = array('term' => array('username' => 'scharrier')); $this->assertEquals($res, $expected); $query = new Simples_Request_Search_Builder_Query(); $query->field('username')->match('scharrier'); $res2 = $query->to('array'); $this->assertEquals($res, $res2); $query = new Simples_Request_Search_Builder_Query(); $query->fields(array('username', 'retweet'))->match('scharrier'); $res = $query->to('array'); $expected = array('query_string' => array('query' => 'scharrier', 'fields' => array('username', 'retweet'))); $this->assertEquals($res, $expected); $query = new Simples_Request_Search_Builder_Query(); $query->match('scharrier'); $query->in(array('username', 'retweet')); $res = $query->to('array'); $this->assertEquals($res, $expected); $query = new Simples_Request_Search_Builder_Query(); $query->add(array('query' => 'scharrier', 'in' => array('username', 'retweet'))); $res = $query->to('array'); $this->assertEquals($res, $expected); }
/** * Add multiples field queries one time. It's a simplified call wich permit to give this kind of array : * $request->queries(array( * 'field' => 'value', * 'other_field' => array('value 1', 'value 2') * )); * * @param array $queries List of criteries. Field name in key, search in value. * @return \Simples_Request_Search This instance. */ public function queries(array $queries) { // Save current subobject $this->_current = 'query'; $this->_fluid = true; foreach ($queries as $in => $match) { $this->_query->add(array('query' => $match, 'in' => $in)); } return $this; }