/** * @group functional */ public function testSearchWithErrorWithKeys() { $type = $this->_createType(); $index = $type->getIndex(); $client = $index->getClient(); $multiSearch = new MultiSearch($client); $searchGood = new Search($client); $searchGood->setQuery('bunny'); $searchGood->addIndex($index)->addType($type); $multiSearch->addSearch($searchGood, 'search1'); $searchBad = new Search($client); $searchBadQuery = new Range(); $searchBadQuery->addField('bad', array('_id' => 0)); $searchBadQuery->setParam('_cache', true); $searchBad->setQuery($searchBadQuery); $searchBad->addIndex($index)->addType($type); $multiSearch->addSearch($searchBad); $multiResultSet = $multiSearch->search(); $this->assertInstanceOf('Elastica\\Multi\\ResultSet', $multiResultSet); $resultSets = $multiResultSet->getResultSets(); $this->assertInternalType('array', $resultSets); $this->assertArrayHasKey('search1', $resultSets); $this->assertInstanceOf('Elastica\\ResultSet', $resultSets['search1']); $this->assertSame($searchGood->getQuery(), $resultSets['search1']->getQuery()); $this->assertSame(6, $resultSets['search1']->getTotalHits()); $this->assertCount(6, $resultSets['search1']); $this->assertArrayHasKey(0, $resultSets); $this->assertInstanceOf('Elastica\\ResultSet', $resultSets[0]); $this->assertSame($searchBad->getQuery(), $resultSets[0]->getQuery()); $this->assertSame(0, $resultSets[0]->getTotalHits()); $this->assertCount(0, $resultSets[0]); $this->assertTrue($resultSets[0]->getResponse()->hasError()); $this->assertTrue($multiResultSet->hasError()); }
/** * Find all documents in a given range. The range is provided as an array with * at least either a 'lt' or 'lte' key and a 'gt' or 'gte' key. * * 'lt' stands for less than * 'lte' for less than or equal to * 'gt' for greater than * 'gte' for greater than or equal to * * @link https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-range-query.html * * @param string $field * @param array $range * @param bool $timeZone * @param bool $format * @return Query */ public function range($field, array $range, $timeZone = false, $format = false) { $range = new Range($field, $range); if ($timeZone) { $range->setParam('time_zone', $timeZone); } if ($format) { $range->setParam('format', $format); } $query = $this->newQuery($range); $this->query[] = $query; return $query; }