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()); }
/** * @group functional */ public function testFilteredSearch() { $index = $this->_createIndex(); $type = $index->getType('helloworld'); $type->addDocuments(array(new Document(1, array('name' => 'hello world')), new Document(2, array('name' => 'nicolas ruflin')), new Document(3, array('name' => 'ruflin')))); $query = new Terms(); $query->setTerms('name', array('nicolas', 'hello')); $index->refresh(); $resultSet = $type->search($query); $this->assertEquals(2, $resultSet->count()); $query->addTerm('ruflin'); $resultSet = $type->search($query); $this->assertEquals(3, $resultSet->count()); }
/** * @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()); }
/** * @param string $field * @param array $values * * @return \Elastica\Query\Terms */ public function createTermsQuery($field, array $values) { $termQuery = new Terms(); return $termQuery->setTerms($field, $values); }