O Spotlight reimporta um arquivo que foi copiado ou movido?

1

Esta não é uma pergunta capciosa sobre casos de esquina ou algo assim - simplesmente, se o Spotlight já tiver um arquivo importado e indexado em seu banco de dados e esse arquivo for movido ou copiado (digamos, um script usado mv ou cp nele), o Spotlight compara as somas de verificação (ou algo assim) para determinar 'este é o mesmo arquivo, não é necessário procurar dentro dele novamente ', ou apenas chama qualquer importador registrado para esse tipo novamente (o que irá desencadear uma nova análise).

Se possível, forneça a fonte de onde você aprendeu isso; A questão é, eu realmente quero ter certeza de qual deles é o comportamento especificado (é muito fácil ser enganado pela experimentação com um sistema tão inconstante quanto o Spotlight).

Como pano de fundo, a ideia é que eu tenha um importador Spotlight personalizado que consuma muito tempo (em termos de quanto tempo leva para importar um arquivo) e quero saber se é seguro escrever um script de shell move arquivos indexados em / dentro de pastas habilitadas para o Spotlight, sem ter que se preocupar em fazer com que o Spotlight enlouqueie tudo de novo.

    
por Adrian Petrescu 21.01.2010 / 05:20

2 respostas

1

Para descobrir se a reindexação acontece com mv / cp. Você pode ficar de olho nele com fseventer . Ele observa as mudanças no sistema de arquivos usando a mesma API subjacente que o Spotlight

    
por 02.02.2010 / 05:56
2

Basicamente, não é necessário reindexar, uma vez que qualquer I / O de arquivo que passa pelo kernel, incluindo os comandos mv e cp do UNIX, causa uma atualização no índice do Spotlight. Dessa forma, o índice está sempre atualizado.

O Spotlight definitivamente percorreu um longo caminho desde então, mas quando 10.4 Tiger saiu, havia alguns bons artigos circulando sobre como funciona, explicando a tecnologia. Um desses artigos está na abrangente Revisão do Tigre da Ars Technica . Citação:

Pre-created indexes allow for very fast searches, but they also preset a potential problem. It's easy for an index to get out of sync with the current state of the file system, and an index that's out of date is not very useful. In order to provide accurate results, an index must accurately reflect the state of all files "in real time."

Each metadata importer is responsible for scanning a file and returning all of the metadata it could extract—from the file system metadata structures, the file contents, or anything else it wants to consider. The metadata is returned as a set of key/value pairs, and is added to the Spotlight index entry for the file.

Metadata importer plug-ins are stored in Spotlight folders in any of the various Library folders. As usual, the more specific locations take precedence: ~/Library/Spotlight overrides /Library/Spotlight, and so on.

Any file i/o that goes through the Tiger kernel will trigger the appropriate metadata importer. This kernel-level integration ensures that the Spotlight indexes are always up to date.

Espero que isso ajude. Outros podem esclarecer as melhorias na arquitetura do Spotlight desde a saída do Tiger. Eu sou apenas um usuário humilde.

    
por 23.01.2010 / 18:20