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' => ['*']
]
],
)
);
が最初のケースでは、私は私の の目的のために役に立たないだけで、親IDを取得することができます。
私は親文書 のすべての_sourceフィールドにアクセスできますが、フィルタリングはできません。
私が必要とするのは、_parent _sourceフィールドへのアクセスを取得し、画像のフィルタリングを維持することです。