Exclure des répertoires de la recherche Windows par caractère générique

L’indexation de recherche interfère avec notre processus de compilation, et je voudrais exclure toutes les instances de nos répertoires de développement de l’indexeur (nous avons une configuration trunk et branches).

Je pourrais exclure le répertoire parent entier, mais cela exclurait trop de fichiers.

Je peux le faire manuellement en décochant chaque instance dans les options d’indexation, mais c’est très manuel et fastidieux.

J’ai trouvé les règles dans le registre à HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Search\CrawlScopeManager\Windows\SystemIndex\WorkingSetRules, mais je ne sais pas s’il est recommandé de mettre à jour cela à la volée.

Est-il possible d’exclure des répertoires de la recherche Windows par caractère générique ou un autre critère moins manuel ?

J’ai regardé dans la clé HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Search\CrawlScopeManager\Windows\SystemIndex\DefaultRules et j’ai trouvé quelque chose d’intéressant.

DefaultRules\1 contient :

Default   REG_DWORD    0x00000001
Include   REG_DWORD    0x00000000
Policy    REG_DWORD    0x00000000
Suppress  REG_DWORD    0x00000000
URL       REG_SZ       file:///C:\Users\*\AppData\Local\Temp\*

Regardez cette clé URL – deux caractères génériques !

Donc, puisque la recherche Windows prend nativement en charge les caractères génériques, tout ce que nous avons à faire est de modifier une exception existante.

Ajouter des exceptions avec caractères génériques à la recherche Windows

  • Ajouter une exception modèle.

Ajoutez une exception pour un répertoire approprié en allant dans Options d'indexationModifier
et en décochant un répertoire (dans mon cas, C:\Users\MyName\dev\trunk\bin).

  • Arrêtez le service Windows Search.

Allez dans Services, sélectionnez Windows Search, faites un clic droit dessus et sélectionnez Arrêter.

  • Trouvez l’exception existante.

Ouvrez l’Éditeur du registre et naviguez vers HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Search\CrawlScopeManager\Windows\SystemIndex\WorkingSetRules.

Parcourez chaque sous-clé numérotée pour trouver la vôtre.

Modifiez l’exception.

Dans mon cas, j’ai plusieurs branches extraites, donc j’ai des répertoires pour trunk et pour chaque branche versionnée (comme 3.2, 4.0, etc.). J’ai donc changé la clé URL de

file:///C:\Users\MyName\dev\ProjectName\trunk\bin

en

file:///C:\Users\MyName\dev\ProjectName\*\bin

  • Redémarrez le service Windows Search.

Faites un clic droit sur Windows Search et sélectionnez Démarrer ou Redémarrer.

C’est tout ! Les répertoires sont même décochés/exclus dans les Options d’indexation.