2016-07-17 33 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 

我al al準備嘗試這樣的事:

$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

相關問題