diff --git a/docs/InnerHits/Nested.md b/docs/InnerHits/Nested.md index 76b6990436d21e561c96ae695bb5aa092ed76892..1aef8df4303aa80eb26d60befad9220e2d2b8900 100644 --- a/docs/InnerHits/Nested.md +++ b/docs/InnerHits/Nested.md @@ -37,7 +37,9 @@ And now the query via DSL: ```php $matchQuery = new MatchQuery('comments.message', '[different query]'); $nestedQuery = new NestedQuery('comments', $matchQuery); -$innerHit = new NestedInnerHit('comment', 'comments', $matchQuery); +$searchQuery = new Search(); +$searchQuery->add($matchQuery); +$innerHit = new NestedInnerHit('comment', 'comments', $searchQuery); $search = new Search(); $search->addQuery(new MatchQuery('comments.message', '[actual query]')); @@ -98,14 +100,21 @@ And now the query via DSL: ```php $matchQuery = new MatchQuery('cars.manufacturers.country', 'Japan'); +$matchSearch = new Search(); +$matchSearch->addQuery($matchQuery); + $nestedQuery = new NestedQuery('cars.manufacturers', $matchQuery); -$innerHitNested = new NestedInnerHit('manufacturers', 'cars.manufacturers', $matchQuery); -$innerHit = new NestedInnerHit('cars', 'cars', $nestedQuery); -$innerHit->addInnerHit($innerHitNested); +$nestedSearch = new Search(); +$nestedSearch->addQuery($nestedQuery); + +$innerHitNested = new NestedInnerHit('manufacturers', 'cars.manufacturers', $matchSearch); + +$innerHit = new NestedInnerHit('cars', 'cars', $nestedSearch); +$nestedSearch->addInnerHit($innerHitNested); $search = new Search(); $search->addInnerHit($innerHit); $search->toArray(); ``` -[1]: https://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-inner-hits.html \ No newline at end of file +[1]: https://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-inner-hits.html diff --git a/src/InnerHit/NestedInnerHit.php b/src/InnerHit/NestedInnerHit.php index 7df7421db72c3ad421b53a5e6757ad284dcaffcc..e04707adb4e04cfadeb3214291264fb5602417f5 100644 --- a/src/InnerHit/NestedInnerHit.php +++ b/src/InnerHit/NestedInnerHit.php @@ -32,22 +32,24 @@ class NestedInnerHit implements BuilderInterface private $path; /** - * @var BuilderInterface + * @var Search */ - private $query; + private $search; /** * Inner hits container init. * * @param string $name * @param string $path - * @param Search $query + * @param Search $search */ - public function __construct($name, $path, Search $query = null) + public function __construct($name, $path, Search $search = null) { $this->setName($name); $this->setPath($path); - $this->setQuery($query); + if ($search) { + $this->setSearch($search); + } } /** @@ -60,26 +62,34 @@ class NestedInnerHit implements BuilderInterface /** * @param string $path + * + * @return $this */ public function setPath($path) { $this->path = $path; + + return $this; } /** - * @return BuilderInterface + * @return Search */ - public function getQuery() + public function getSearch() { - return $this->query; + return $this->search; } /** - * @param Search $query + * @param Search $search + * + * @return $this */ - public function setQuery(Search $query = null) + public function setSearch(Search $search) { - $this->query = $query; + $this->search = $search; + + return $this; } /** @@ -95,7 +105,7 @@ class NestedInnerHit implements BuilderInterface */ public function toArray() { - $out = $this->getQuery() ? $this->getQuery()->toArray() : new \stdClass(); + $out = $this->getSearch() ? $this->getSearch()->toArray() : new \stdClass(); $out = [ $this->getPathType() => [ diff --git a/tests/InnerHit/NestedInnerHitTest.php b/tests/InnerHit/NestedInnerHitTest.php index 44c59ee117bb5a3a61916d1605c35a9e2610ad0e..c9bfe8a389f6845a6a70aaf8bc2a4fe32186be11 100644 --- a/tests/InnerHit/NestedInnerHitTest.php +++ b/tests/InnerHit/NestedInnerHitTest.php @@ -111,10 +111,10 @@ class NestedInnerHitTest extends \PHPUnit_Framework_TestCase $hit = new NestedInnerHit('test', 'acme', new Search()); $hit->setName('foo'); $hit->setPath('bar'); - $hit->setQuery($search); + $hit->setSearch($search); $this->assertEquals('foo', $hit->getName()); $this->assertEquals('bar', $hit->getPath()); - $this->assertEquals($search, $hit->getQuery()); + $this->assertEquals($search, $hit->getSearch()); } }