Pergunta

Eu acho que li em algum lugar que quando a View é solicitado o "mapa" só é executado através de documentos que foram adicionadas desde a última vez que foi solicitado? Como isso é determinado? Eu pensei que eu vi algo sobre um número de seqüência. Isto é algo que você pode chegar a? A sua não é parte da fuga UUID no campo _rev é?

Qualquer maneira de forçar um 'recalc' de toda a View (em todos os registros)?

Foi útil?

Solução

A seção sobre a visão Índices do Technical Overview é um grande guia para este .

O construtor exibição usa o ID de sequência de banco de dados para determinar se o grupo de vista é totalmente up-to-date com o banco de dados. Se não, o mecanismo de exibição examina os todos os documentos do banco de dados (em ordem sequencial embalado) mudou desde a última atualização. Os documentos são lidos na ordem em que ocorrem no arquivo em disco, reduzindo a freqüência e custo de cabeça buscas em disco.
Como documentos são examinados, os seus valores de linha anteriores são removidos a partir dos índices de visualização, se existirem. Se o documento é selecionado por uma função de vista, os resultados de função são inseridos na vista como uma nova linha.

CouchDB primeiro verifica para ver se qualquer mudou em todo o banco de dados usando um ID de seqüência (que é atualizado sempre que há uma mudança a qualquer documento no banco de dados). Se algo mudou ele vai procurar esses documentos e executa a função de mapa sobre eles.

Há realmente não deve haver qualquer necessidade de reconstruir / regenerar seus pontos de vista, uma vez que vai gradativamente refrescar como você modificar seus documentos (note que ele não vai atualizar a visualização até que você usá-lo embora). Com o chapéu disse uma maneira (e eu com certeza estou há uma maneira melhor) seria remover o documento de concepção descrevendo a vista e inseri-lo novamente vendo como um documento de design não é diferente (quase) de um documento normal.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top