Исключить каталоги из Windows Search по шаблону

17

Индексирование поиска мешает нашему процессу сборки, и я хотел бы исключить все экземпляры наших каталогов dev из индексатора (у нас есть настройка соединительных линий и ветвей).
Я мог бы исключить весь родительский каталог, но это исключило бы слишком много файлов.

Я могу сделать это вручную, отменив выбор каждого экземпляра в параметрах индексации, но это очень утомительно и вручную.

Я нашел правила в реестре на HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Search\CrawlScopeManager\Windows\SystemIndex\WorkingSetRules, но я не знаю, кошерно ли это обновлять на лету.

Можно ли исключить каталоги из Windows Search по шаблону или по другим менее ручным критериям?

mskfisher
источник
Мой лучший совет - отказаться от дефектного поиска Windows и использовать сторонние продукты. Для поиска: Все поисковик и агент Ransack . Для меню «Пуск»: Classic Shell .
Harrymc
@harrymc Хорошие предложения! На самом деле я использую Поиск по всем, но индексация поиска в Windows по-прежнему является неотъемлемой частью Windows. Отключение этого полностью останавливает некоторые другие функции, например, без него поиск OneNote или даже тегирование не работает. Исключение каталогов было бы просто способом удержать его от ненужной работы.
laggingreflex
Windows Search - это то, что есть, и есть предел его гибкости. Вы можете ограничить его диапазон до абсолютного минимума, который вам нужен, и использовать вышеуказанные утилиты для тяжелой работы.
harrymc

Ответы:

19

Я заглянул в HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Search\CrawlScopeManager\Windows\SystemIndex\DefaultRulesключ и нашел что-то интересное.

DefaultRules\1 содержит:

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\*

Посмотрите на этот URLключ - два символа подстановки!

Так как Windows Search изначально поддерживает подстановочные знаки, все, что нам нужно сделать, это настроить существующее исключение.

Добавление групповых исключений в Windows Search

  1. Добавить шаблон исключения.
    Добавьте исключение для подходящего каталога, перейдя в Indexing OptionsModify и отменив выбор одного каталога (в моем случае, C:\Users\MyName\dev\trunk\bin).
  2. Остановите службу поиска Windows.
    Перейти Services, выберите Windows Search, щелкните правой кнопкой мыши на нем, и выберите Stop.
  3. Найдите существующее исключение.
    Откройте редактор реестра и перейдите к HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Search\CrawlScopeManager\Windows\SystemIndex\WorkingSetRules.
    Просмотрите каждый пронумерованный подключ, чтобы найти свой.
  4. Настроить исключение.
    В моем случае я извлек несколько веток, поэтому у меня будут каталоги trunkдля каждой версионной ветви (например, 3.2, 4.0 и т. Д.). Поэтому я изменил URLключ от

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

    в

    file:///C:\Users\MyName\dev\ProjectName\*\bin
    
  5. Перезапустите службу поиска Windows.
    Щелкните правой кнопкой мыши Windows Searchи выберите Startили Restart.

Это оно! Каталоги даже не проверяются / исключаются в параметрах индексации.

mskfisher
источник
Обратите внимание, что вам нужно будет удалить и перестроить свой индекс (или удалить и воссоздать ранее проиндексированные файлы), чтобы Windows Search не мог продолжать отслеживать эти расположения.
mskfisher
Мои исключения были обнаружены в `HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows Search \ CrawlScopeManager \ Windows \ SystemIndex \ WorkingSetRules`
CAD
5
Кто-нибудь был в состоянии подтвердить, охватывает ли подстановочный знак несколько каталогов? Скажем, я хотел запретить индексирование всех папок с именем 'node_modules', независимо от того, где они находятся в файловой иерархии?
M-Pixel
@Qwertman Вы можете убедиться в этом, посмотрев его в пользовательском интерфейсе параметров индексирования.
mskfisher
1
В Windows 10 выдается ошибка редактирования значения. Невозможно редактировать URL: ошибка записи нового содержимого значения. Изменить: Аааа просто нужно изменить права доступа к ключу
laggingreflex