Hello,
Ré-indexation ------------- Fréquence: dépend de l'application et de la fréquence de la modification des arbres (potentiellement élévé, ne doit pas être coûteuse)
si field dirty contient 'parent' ou est null on reindex ce noeud et tous les noeuds trouvé par la requete query(tree.parents=nodeId)
actuellement: N requêtes, N store. Avec N = nombre d'attachment nouveau: total 1 requêtes + M store. Avec M = nombre de noeud fils
Ça c'est un bon point, même au niveau de l'algo cela est beaucoup plus simple.
Recherche du nombre d'attachment pour un noeud et ses fils ---------------------------------------------------------- Fréquence: dépend de l'application, mais souvent élevé (affichage d'arbre avec le nombre entre parenthèse)
si on souhaite connaitre le nombre d'attachment d'un noeud (avec les sous noeuds) on fait la recherche (tree.parents=nodeId) on boucle sur les resutats pour additionner les attachments de chaque noeud (total 1 requete) (actuellement 2 requetes)
Petite précision actuellement il y a deux requêtes car on peut pas connaître l'ensemble des noeuds car la première nous renvoi pas les noeuds sans élément.
Recherche des attachments suivant un critère -------------------------------------------- Fréquence: dépend de l'application, mais normalement rare
Moi je dirais le contraire :-). Dans n'importe quel recherche tu pourrais en avoir besoin.
Si on souhaite recherche les attachment suivant un critère a partir d'un noeud, on fait la recherche (tree.parents=nodeId) on concatene tous les ids de tous les attachment des noeuds trouves. Puis on relance une recherche (critère demandé) où l'on a ajouté une condition pour que les documents retournés doivent être dans la liste des id des attachments précédemment construite. (total 2 requêtes) (acutellement 1)
La grosse différence entre les deux c'est que la nouvelle solution brasse l'ensemble des ids des documents qui peut être important. Il faudrait vérifier les performances.
Question ======== - voyez vous des problèmes dans la nouvelle proposition - supprime-t-on l'ancien indexer par le nouveau ou laisse-t-on les deux a disposition ?
Je suis partager, je les laisserais bien les deux, le must serait de trouver une solution sans ce soucis d'intersection. Je crois que le seul moyen est de conserver les informations dans les éléments et non dans le noeud :-/. Julien