Inheritance: extends AbstractQuery
 public function testShouldReturnTheRightNumberOfResult()
 {
     $f = new Nested();
     $this->assertEquals(array('nested' => array()), $f->toArray());
     $q = new Terms();
     $q->setTerms('hobby', array('guitar'));
     $f->setPath('hobbies');
     $f->setQuery($q);
     $c = $this->_getClient();
     $s = new Search($c);
     $i = $c->getIndex('elastica_test_filter_nested');
     $s->addIndex($i);
     $r = $s->search($f);
     $this->assertEquals(1, $r->getTotalHits());
     $f = new Nested();
     $this->assertEquals(array('nested' => array()), $f->toArray());
     $q = new Terms();
     $q->setTerms('hobby', array('opensource'));
     $f->setPath('hobbies');
     $f->setQuery($q);
     $c = $this->_getClient();
     $s = new Search($c);
     $i = $c->getIndex('elastica_test_filter_nested');
     $s->addIndex($i);
     $r = $s->search($f);
     $this->assertEquals(2, $r->getTotalHits());
 }
Ejemplo n.º 2
0
 /**
  * @group functional
  */
 public function testSignificantTermsAggregationWithBackgroundFilter()
 {
     $agg = new SignificantTerms('significantTerms');
     $agg->setField('temperature');
     $agg->setSize(1);
     $termsFilter = new TermsFilter();
     $termsFilter->setTerms('color', array('blue', 'red', 'green', 'yellow'));
     $agg->setBackgroundFilter($termsFilter);
     $termsQuery = new Terms();
     $termsQuery->setTerms('color', array('blue', 'red', 'green', 'yellow', 'white'));
     $query = new Query($termsQuery);
     $query->addAggregation($agg);
     $results = $this->_getIndexForTest()->search($query)->getAggregation('significantTerms');
     $this->assertEquals(15, $results['buckets'][0]['doc_count']);
     $this->assertEquals(12, $results['buckets'][0]['bg_count']);
     $this->assertEquals('4500', $results['buckets'][0]['key_as_string']);
 }
 /**
  * @group functional
  */
 public function testShouldReturnTheRightNumberOfResult()
 {
     $filter = new Nested();
     $this->assertEquals(array('nested' => array()), $filter->toArray());
     $query = new Terms();
     $query->setTerms('hobbies.hobby', array('guitar'));
     $filter->setPath('hobbies');
     $filter->setQuery($query);
     $search = new Search($this->_getClient());
     $search->addIndex($this->_getIndexForTest());
     $resultSet = $search->search($filter);
     $this->assertEquals(1, $resultSet->getTotalHits());
     $filter = new Nested();
     $this->assertEquals(array('nested' => array()), $filter->toArray());
     $query = new Terms();
     $query->setTerms('hobbies.hobby', array('opensource'));
     $filter->setPath('hobbies');
     $filter->setQuery($query);
     $search = new Search($this->_getClient());
     $search->addIndex($this->_getIndexForTest());
     $resultSet = $search->search($filter);
     $this->assertEquals(2, $resultSet->getTotalHits());
 }
Ejemplo n.º 4
0
 /**
  * Find any documents matching the provided terms, optionally you can set a
  * minimum amount of terms to match.
  *
  * @param string $key
  * @param array $terms
  * @param bool|int $minimumShouldMatch
  * @return Query
  */
 public function terms($key, array $terms, $minimumShouldMatch = false)
 {
     $query = new Terms($key, $terms);
     if ($minimumShouldMatch) {
         $query->setMinimumMatch($minimumShouldMatch);
     }
     $query = $this->newQuery($query);
     $this->query[] = $query;
     return $query;
 }
 /**
  * @expectedException \Elastica\Exception\InvalidException
  */
 public function testInvalidParams()
 {
     $query = new Terms();
     $query->toArray();
 }
Ejemplo n.º 6
0
 /**
  * @param string $field
  * @param array $values
  *
  * @return \Elastica\Query\Terms
  */
 public function createTermsQuery($field, array $values)
 {
     $termQuery = new Terms();
     return $termQuery->setTerms($field, $values);
 }