/** * {@inheritdoc} */ public function execute($cacheResult = false) { $queryHash = md5(json_encode($this->queryBuilder->getRequest())); if ($cacheResult === true && isset(self::$runtimeQueryResultCache[$queryHash])) { return self::$runtimeQueryResultCache[$queryHash]; } $queryResult = new ElasticSearchQueryResult($this); self::$runtimeQueryResultCache[$queryHash] = $queryResult; return $queryResult; }
/** * @test * @dataProvider rangeConstraintExamples */ public function rangeConstraintsWork($constraint, $operator, $value) { $this->queryBuilder->{$constraint}('fieldName', $value); $expected = array('range' => array('fieldName' => array($operator => $value))); $actual = $this->queryBuilder->getRequest(); $this->assertInArray($expected, $actual['query']['filtered']['filter']['bool']['must']); }
/** * @test */ public function aCustomAggregationDefinitionCanBeApplied() { $expected = ["foo" => ["some" => ["field" => "bar"], "custom" => ["field" => "bar"], "arrays" => ["field" => "bar"]]]; $this->queryBuilder->aggregation("foo", $expected['foo']); $actual = $this->queryBuilder->getRequest(); $this->assertInArray($expected, $actual); }