2016-07-17 7 views
0

私はElasticsearchで親子関係を作成しました。Elasticsearchは子ドキュメントから_parentソースフィールドを取得します

  • ユーザー - 親
  • イメージ - 私は、画像の何千も、コードの小さな例

    $query = array(
          'query_string' => array(
            'query' => $queryParams['category'], 
            'default_operator' => 'AND', 
            'default_field' => 'allParentCategories', 
         ) 
    ); 
    
    $reqParams['body'] = array(
         'query' => array(
          'filtered' => array(
           'query' => $query, 
           'filter' => array(
            'bool' => array(
             'must' => $filtersArray, 
            ), 
           ), 
          ), 
         ) 
    ); 
    

    をフィルタリングしない子

これは私が結果として取得していますものです

array (size=8) 
     '_index' => string 'images-15' (length=9) 
     '_type' => string 'image' (length=5) 
     '_id' => string '48026' (length=5) 
     '_score' => null 
     '_routing' => string '2' (length=1) 
     '_parent' => string '2' (length=1) 
     '_source' => 
     array (size=15) 
      'thumb' => string 'fasdfas' (length=52) 
      'author' => 
      array (size=6) 
       'firstName' => string 'asdfas' (length=3) 
       'lastName' => string 'asdf' (length=3) 
       'fullName' => string 'asdfas' (length=7) 
       'id' => string '2' (length=1) 
       'picture' => null 
       'username' => string 'asdfa' (length=6) 
      'downloadURL' => string 'asdfasd' (length=87) 
      'creationDate' => string '2016-07-15 11:20:12' (length=19) 
      'tags' => 
      array (size=0) 
       empty 
       'size' => 
      array (size=2) 
       'bytes' => int 735025 
       'formatted' => string '717.8 KB' (length=8) 
      'downloads' => int 0 
      'added_by' => int 2 
      'width' => int 900 
      'is_icon' => boolean false 
      'is_vector' => boolean false 
      'id' => int 48026 
      'views' => int 0 
      'height' => int 900 
      'likes' => int 1 
     'sort' => 
     array (size=2) 
      0 => int 1468581612000 
      1 => int 48026 

私はこのような準備をしようとしたもの:

$reqParams['body'] = array(
     'query' => array(
      'has_parent' => [ 
       'parent_type' => 'user', 
       'query' => [ 
        'match_all' => [] 
       ], 
       'inner_hits' => [ 
        '_source' => ['*'] 
       ] 
      ], 
     ) 
); 
  1. が最初のケースでは、私は私の の目的のために役に立たないだけで、親IDを取得することができます。

  2. 私は親文書 のすべての_sourceフィールドにアクセスできますが、フィルタリングはできません。

私が必要とするのは、_parent _sourceフィールドへのアクセスを取得し、画像のフィルタリングを維持することです。

答えて

0

これは私がやったことです。そのようにして私は親フィールドにアクセスし、前と同じように検索結果を保持します。 enter image description here

関連する問題