搜索索引干扰了我们的构建过程,我想从索引器中排除我们开发目录的所有实例(我们有一个主干和分支设置)。
我可以排除整个父目录,但这样会排除太多文件。
我可以通过取消选择索引选项中的每个实例来手动完成此操作,但这非常手动且繁琐。
我在注册表中找到了规则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 添加通配符例外
- 添加模板例外。
通过转到Indexing Options
→Modify
并取消选择一个目录(在我的情况下为C:\Users\MyName\dev\trunk\bin
),为合适的目录添加例外。 - 停止 Windows Search 服务。
转到Services
,选择Windows Search
,右键单击它,然后选择Stop
。 - 找到现有的例外。
打开注册表编辑器并导航到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Search\CrawlScopeManager\Windows\SystemIndex\WorkingSetRules
。
查看每个编号子项以找到您的例外。 调整异常。
在我的例子中,我签出了多个分支,因此我将为trunk
每个版本分支(例如 3.2、4.0 等)设置目录。因此我将密钥URL
从file:///C:\Users\MyName\dev\ProjectName\trunk\bin
到
file:///C:\Users\MyName\dev\ProjectName\*\bin
- 重新启动 Windows Search 服务。
右键单击Windows Search
并选择Start
或Restart
。
就是这样!目录甚至在索引选项中未选中/排除。