Vue de CouchDB, carte, Index et ordre

Je pense que lire quelque part que lorsqu'un avis est demandé que la « carte » est exécutée uniquement dans les documents qui ont été ajoutés depuis la dernière fois, il a été demandé ? Comment cela est-il calculé ? J'ai pensé que j'ai vu quelque chose sur un numéro de séquence. Est-ce quelque chose que vous pouvez faire ? Ce n'est pas partie de l'UUID de fin sur le champ _rev est-il ?

N'importe quel moyen de forcer un « recalcul » de toute la vue (dans tous les dossiers) ?

répondre #1

La section sur l'index de la vue dans Présentation technique est un excellent guide pour cela.

La vue constructeur utilise l'ID de séquence de base de données pour déterminer si la vue est complètement à jour avec la base de données. Si ce n'est pas le cas, le moteur d'affichage examine tous les documents de base de données (dans un ordre séquentiel emballé) a changé depuis la dernière actualisation. Les documents sont lus dans l'ordre qu'ils se produisent dans le fichier du disque, en réduisant la fréquence des têtes de disques cherche.
Que les documents sont examinés, leurs valeurs précédentes de la ligne sont supprimés de l'index de la vue, s'ils existent. Si le document est sélectionné par une fonction de la vue, les résultats de la fonction sont insérées dans la vue comme une nouvelle ligne.

CouchDB vérifie d'abord pour voir si quelque chose a changé dans la base de données entière à l'aide d'un id de séquence (qui est actualisé chaque fois que survient un changement à n'importe quel document dans la base de données). Si quelque chose a changé, il va à la recherche de ces documents et exécute la fonction de la carte sur eux.

Il vraiment ne devrait pas être nécessaire de reconstruire/régénérer votre point de vue puisqu'il actualisera progressivement lorsque vous modifiez vos documents (Notez qu'il ne mettre à jour la vue jusqu'à ce que vous l'utilisez cependant). Chapeau dit aller (et je suis sûr qu'il ya une meilleure façon) serait de supprimer le document de conception qui décrit la vue et l'insérer à nouveau car un document de design n'est pas différent (ou presque) d'un document normal.


Tags lesen

     
 
logo_banner