向 Windows Search 添加通配符例外

向 Windows Search 添加通配符例外

搜索索引干扰了我们的构建过程,我想从索引器中排除我们开发目录的所有实例(我们有一个主干和分支设置)。
我可以排除整个父目录,但这样会排除太多文件。

我可以通过取消选择索引选项中的每个实例来手动完成此操作,但这非常手动且繁琐。

我在注册表中找到了规则HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Search\CrawlScopeManager\Windows\SystemIndex\WorkingSetRules,但我不知道动态更新它是否合适。

是否可以通过通配符或其他一些不太需要手动操作的标准从 Windows 搜索中排除目录?

答案1

我查看了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 Search 服务。
    转到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 Search 服务。
    右键单击Windows Search并选择StartRestart

就是这样!目录甚至在索引选项中未选中/排除。

相关内容