Spotlight ré-importe-t-il un fichier copié ou déplacé?


1

Ce n’est pas une question piège à propos des cas d’angle ou de choses du genre - simplement, si Spotlight a déjà un fichier importé et indexé dans sa base de données et que ce fichier est déplacé ou copié (par exemple, un script utilise mv ou cp dessus), Spotlight compare-t-il les sommes de contrôle (ou quelque chose du genre) pour déterminer «il s’agit du même fichier, inutile de regarder à l’intérieur», ou appelle-t-il simplement le nouvel importateur enregistré pour ce type (ce qui déclenchera une nouvelle analyse) ).

Si possible, veuillez indiquer la source d'où vous avez appris cela. En réalité, je veux vraiment savoir quel est le comportement spécifié (il est trop facile de se laisser tromper par des expériences avec un système aussi instable que Spotlight).

En guise d’arrière-plan, l’idée est que j’ai un importateur Spotlight personnalisé qui prend beaucoup de temps (en termes de temps nécessaire à l’importation d’un fichier) et que je veux savoir s’il est prudent d’écrire un script shell qui déplace des fichiers. il indexe les dossiers activés / désactivés dans Spotlight sans avoir à s'inquiéter de ce que Spotlight devienne fou en réindexant tout.

Réponses:


1

Pour savoir si la réindexation a lieu avec mv / cp. Vous pouvez garder un œil dessus avec fseventer . Il observe les modifications du système de fichiers à l'aide de la même API sous-jacente que Spotlight.


2

En principe, il n'est pas nécessaire de réindexer, car toute entrée / sortie de fichier passant par le noyau, y compris UNIX mvet les cpcommandes, provoque une mise à jour dans l'index Spotlight. De cette façon, l'index est toujours à jour.

Spotlight a certes parcouru un long chemin depuis, mais lorsque 10.4 Tiger est sorti, il y avait quelques bons articles sur son fonctionnement qui expliquaient la technologie. Un de ces articles se trouve dans la revue complète Ars Technica Tiger . Citation:

Les index pré-créés permettent des recherches très rapides, mais ils prédéfinissent également un problème potentiel. Il est facile pour un index de ne plus être synchronisé avec l'état actuel du système de fichiers, et un index obsolète n'est pas très utile. Afin de fournir des résultats précis, un index doit refléter avec précision l'état de tous les fichiers "en temps réel".

Chaque importateur de métadonnées est chargé d'analyser un fichier et de renvoyer toutes les métadonnées qu'il peut extraire, à partir des structures de métadonnées du système de fichiers, du contenu du fichier ou de tout autre élément à prendre en compte. Les métadonnées sont renvoyées sous forme d'un ensemble de paires clé / valeur et sont ajoutées à l'entrée d'index Spotlight du fichier.

Les plug-in d'importateur de métadonnées sont stockés dans les dossiers Spotlight de l'un des dossiers de la bibliothèque. Comme d'habitude, les emplacements les plus spécifiques sont prioritaires: ~/Library/Spotlightsubstitutions /Library/Spotlight, etc.

Tout fichier d'entrée-sortie qui passe par le noyau Tiger déclenchera l'importateur de métadonnées approprié. Cette intégration au niveau du noyau garantit que les index Spotlight sont toujours à jour.

J'espère que cela t'aides. D'autres pourront peut-être faire la lumière sur les améliorations de l'architecture Spotlight depuis la sortie de Tiger. Je ne suis qu'un humble utilisateur.


C'est très intéressant, fideli - je ne savais pas que Mac OS X était assez conservateur pour réindexer toutes les opérations d'E / S du noyau. Je suis prêt à accepter votre réponse en attendant deux choses que je souhaite rechercher (ou si quelqu'un d'autre le sait :) (1) Le réindexation qui se produit lors d'opérations telles que mv / cp ré-indexe-t-il l'intégralité du fichier, ou uniquement métadonnées qui changent de façon raisonnable, comme l'emplacement, les temps d'accès, etc.? (2) Ce comportement est-il toujours le même chez Snow Leopard? Je sais que de nombreuses améliorations des performances de Spotlight ont été annoncées pour Leopard et cela semble être le genre de chose qu’elles changeraient. Merci!
Adrian Petrescu

J'espère que quelqu'un pourra ajouter à ma réponse, car j'ai déjà épuisé mes connaissances sur Spotlight.
Fidélien

Merci pour le début :) J'ai ajouté une prime à la question pour éventuellement attirer des réponses aux questions que vous avez posées, mais si cela ne fonctionne pas, j'accepterai simplement la vôtre. À votre santé!
Adrian Petrescu
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.