0

Actuellement, dans ma structure de document ES, il existe un champ de type 'Object'. C'est un objet json qui peut avoir jusqu'à 3000 champs à l'intérieur. Le problème étant que, parfois, mon ES manque de mémoire en raison de la taille du document étant trop grande. Donc, je cherche à changer la structure de mon document.Quels sont les avantages et les inconvénients de l'utilisation du mappage imbriqué dans la relation Elasticsearch vs parent

Les deux structures que je regarde sont - Mappages imbriqués et relation parent-enfant. Les deux structures satisfont mon exigence de recherche. Points à l'étude:

  1. J'ai lu que les requêtes imbriquées sont beaucoup plus rapides que les requêtes enfants.
  2. Les mappages imbriqués enregistrent également les champs imbriqués en tant que documents distincts.

Deux points de confusion que je fais face:

  1. Comment n'imbriqué travail d'indexation? Est-ce que ES obtient le document entier en une fois et l'analyse complètement à la fois, ou les demandes de documents imbriqués sont individuelles. Parce que dans le premier cas, il peut arriver que ES manque de mémoire à nouveau. Lorsque nous disons que les requêtes parent enfant sont plus lentes, à quel point sommes-nous lents?

Recherche d'entrées.

Répondre

0

Les imbrications sont plus rapides que les opérations parent/enfant et sont plus simples à gérer. En effet, vous pouvez indexer un enfant sans parents, vous devez donc être prudent lorsque vous indexez. Aussi, quand vous voulez supprimer une entrée de parent, vous devez supprimer tous les enfants, ce n'est pas une tâche automatique. D'autre part, parent/enfant est plus à l'aise si vous souhaitez modifier/mettre à jour votre entrée. Avec le type imbriqué, vous ne pouvez pas modifier une seule valeur imbriquée dans le champ imbriqué, vous devez réindexer toutes les valeurs imbriquées dans le champ imbriqué. Avec parent/enfant, vous pouvez également modifier/mettre à jour une seule valeur dans ce champ parent ou enfant. Les imbrications sont considérées comme des données relationnelles atomiques dans l'index, mais parent/enfant ne sont qu'un type de données différent qui conserve les relations de 2 champ-parent, enfant. Vous pouvez lire le message kimchy ici, et pour la lenteur de parent/enfant, vous pouvez lire le dernier commentaire de la discussion https://discuss.elastic.co/t/choosing-parent-child-vs-nested-document/6742

+0

Merci pour votre réponse. Mais l'une des principales questions que je me pose est de savoir si, dans une structure imbriquée, lors de l'indexation, ES analyse-t-elle le document entier (avec les champs imbriqués) en une fois ou séparément? – Aayushi