2017-03-22 5 views
0

Mit ONGR/ElasticsearchDSL Ich versuche, eine innere Trefferabfrage für Eltern Kind hinzuzufügen. Das Beispiel Dokumentation zeigt an, dass der richtige Weg, dies So erstellen Sie eine innere Trefferabfrage für Eltern und Kinder mit elasticsearchDSL Builder

{ 
    "inner_hits" : { 
     "children" : { 
      "type" : { 
       "article" : { 
        "query" : { 
         "match" : {"title" : "[actual query]"} 
        } 
       } 
      } 
     } 
    } 
} 
And now the query via DSL: 

$matchQuery = new MatchQuery('title', '[actual query]'); 
$innerHit = new ParentInnerHit('children', 'article', $matchQuery); 

$search = new Search(); 
$search->addInnerHit($innerHit); 
$search->toArray(); 

Also für mein Szenario

zu tun ist, ich habe:

$termQuery = new TermQuery('user', $query); 
$innerHit = new ParentInnerHit('child_type', 'parent_type', $termQuery); 
$search->addInnerHit($innerHit); 

Mein Problem ist, dass ich die Fehlermeldung bin immer:

Catchable fatal error: Argument 3 passed to 
ONGR\ElasticsearchDSL\InerHit\NestedInnerHit::__construct() 
must be an instance of ONGR\ElasticsearchDSL\Search, 
instance of ONGR\ElasticsearchDSL\Query\TermLevel\TermQuery 
give defined in ../ongr/elasticsearch-dsl/src/InnerHit/NestedInnerHit.php 
on line 46 

Irgendwelche Gedanken oder Vorschläge?

Antwort

1

Wie Sie aus der Ausnahme sehen ParentInnerHit erwartet Suche statt Abfrage, was sinnvoll ist. Um die gewünschte Abfrage zu erstellen, müssen Sie:

Haben Sie das nicht getestet, aber Sie sollten die Idee bekommen.

Verwandte Themen