2017-05-21 2 views
0

je veux rechercher dans les propriétés de my_type en utilisant ElasticSearch ..comment rechercher dans le document dans ElasticSearch

par exemple dans my_type j'ai une propriété nommée 'folder_applications':

"folder_applications": [ 
    *[ 
    "employer_folder_id" => 142 
    "status_id" => 140 
    "folder" => [ 
     "id" => 142 
     "employer_id" => 11 
    ] 
    "created_at" => "2017-04-12" 
    "is_applied" => 1 
    "hire_stage_id" => 144 
    ], 
    **[ 
    "employer_folder_id" => 7922 
    "status_id" => 141 
    "folder" => [ 
    "id" => 7922 
    "employer_id" => 11 
    ] 
    "created_at" => "2017-04-12" 
    "is_applied" => 1 
    "hire_stage_id" => 143 
    ] 
] 

* -> first array 
** -> second array 

ici par exemple i voulez rechercher dans my_type pour l'objet ayant status_id => 141;

et quand je recherche ceci, mon résultat de recherche retourne le document de trou avec tous les états .. mais je veux juste status_id => 141 ... pas 140 ou tout autre..par exemple je veux obtenir le folder.id = > 7922 & & status_id => 141 .. et le résultat de la recherche me montre le deuxième tableau de mon exemple.

il arrive pour les autres recherches aussi .. comment puis-je gérer cela?

Répondre

0

Si votre propriété folder_applications est nested, vous pouvez utiliser Inner Hits pour obtenir uniquement des objets dans la rangée folder_applications.
Mise à jour: Exemple:

{ 
"query":{ 
    "nested":{ 
    "path":"folder_applications", 
    "query":{ 
     "bool":{ 
      "must":[{"match":{ 
        "folder_applications.status_id":141 
       } 
       }, 
       {"nested":{ 
        "path":"folder_applications.folder", 
        "query":{ 
         "match":{ 
          "folder_applications.folder.id":7922 
         } 
        } 
       } 
       } 
      ] 
     } 
    }, 
    "inner_hits":{} 
    } 
} 
} 
+0

grâce @TarasKohut, pouvez-vous me donner un exemple? oui 'folder_applications' a un type imbriqué ... mais je ne sais pas comment écrire ma requête .. et parce que j'ai aussi une requête booléenne .. je veux les combiner ensemble .. – maral