2016-06-07 1 views
0

J'ai des données indexées basées sur un champ dit "A". Il y a environ 18 valeurs associées à la même valeur de "A". Par conséquent, pendant l'indexation, elasticsearch a assigné la même valeur de "A" à tous les 18 enregistrements mais a assigné une version spécifique à chaque enregistrement. Par exemple: Enregistrement 1: A = 1, Version = 1, Enregistrement 2: A = 1, Version = 2, Enregistrement 3: A = 1, Version = 3 et ainsi de suite.Comment récupérer plusieurs valeurs appartenant au même "Id" dans elasticsearch?

La question est, comment puis-je récupérer tous ces enregistrements appartenant à une seule valeur de "A" en utilisant Java? (BoolQuery, termsQuery, Scroll, multiMatchQuery ne sont pas utiles dans ce cas, d'où le doute.)

+0

Ce n'est pas clair pour moi ce que vous faites avec le champ A. Utilisez-vous A comme ID? Pouvez-vous montrer comment vous indexez les documents? La version à laquelle vous faites référence est utilisée lorsque vous modifiez le document. Il me semble que vous mettez à jour le même document au lieu de créer de nouveaux documents. Si A a plusieurs valeurs, vous récupérez généralement un tableau de valeurs pour le document source. En bref, pouvez-vous donner un exemple de code expliquant ce que vous voulez accomplir. –

Répondre

0

Vous pouvez effectuer une requête d'agrégation pour rechercher tous les documents et les agréger en utilisant une agrégation distincte sur le champ (A). Cela vous donnera toutes les valeurs possibles de A. Pour interroger un document qui correspond à une valeur de champ spécifique, vous pouvez effectuer une recherche par filtre de termes par chemin.

+0

Pourriez-vous s'il vous plaît illustrer avec un code snipet? –