Windows 搜索索引器 CPU 占用高,等、缩小还是重建
SearchIndexer.exe 是 Windows 搜索服务(WSearch)在读你的文件、邮件和其他内容,好让开始菜单、资源管理器和 Outlook 能马上搜到东西,刚装完或升级完系统、加了一个很大的文件夹、或者重建过索引以后,它占一阵 CPU 和磁盘是正常的,真正的问题是它一直做不完、反复从头开始,或者索引已经大到超出它能顺畅处理的范围,所以先看索引状态,大多数办法是把索引变小,而不是把搜索关掉。
索引器在做什么
微软的索引常见问题把索引解释为查看电脑上的文件、邮件和其他内容,并把它们的信息编成目录,第一次运行可能要花上几个小时,之后就在后台进行,只重新索引有变化的数据。
工作量有多大,要看索引了多少项,微软的搜索性能排查说明给了一个量级:
| 已索引项目数 | 微软的说法 |
|---|---|
| 少于 30,000 | 普通用户的电脑 |
| 最多 300,000 | 重度用户的电脑 |
| 超过 400,000 | 可能开始出现性能问题 |
| 约 100 万 | 上限,再往上可能失败,或者造成 CPU、内存、磁盘占用过高 |
同一篇还提到,电脑上的 Outlook 邮箱默认也会被索引,一个邮箱超过 600 万项时,索引器的性能可能下降。
改设置之前,先看状态
Windows 11 在设置 › 隐私和安全性 › 搜索 Windows 里,看已索引的项目数,Windows 10 在设置 › 搜索 › 搜索 Windows。较新的 Windows 11 版本把这一页叫作“搜索”,索引选项放在“查找我的文件”下面。
状态提示能告诉你眼前是哪一种活动,下表第一列是英文界面的原文,中文系统显示的是对应译文:
| 状态 | 意思 | 怎么办 |
|---|---|---|
| Indexing complete | 索引已经建好 | 现在的 CPU 高是别的原因,回任务管理器再看 |
| Indexing in progress | 正在加入新增或改动的文件 | 让电脑开着并接上电源,等几个小时 |
| Indexing speed is reduced because of user activity | 在工作,但你用电脑时会放慢 | 等着,或者让电脑接着电源空闲一会 |
| Index is performing maintenance | 正在恢复或优化索引数据库 | 最多等 30 分钟,反复出现就检查硬盘 |
| Indexing is not running | 服务停了或者被禁用 | 检查 Windows Search 服务 |
微软对维护这一项加了一句提醒,写入索引出问题往往出现在硬盘故障之前,这条提示反复出现的话,先确认个人数据已经备份。查磁盘活动那篇可以帮你分清是索引在忙,还是硬盘本身在吃力。
首次索引还是死循环
首次索引或者重建,看着吓人,但总有结束的时候,微软说重建可能要 24 小时,这段时间里已索引的数字一直往上涨,状态显示正在索引,你打字或者前台任务让 CPU、磁盘很忙时,索引器会主动让路。
死循环看起来不一样,连着好几天都到不了索引完成,已索引的数字掉下去又涨回来,或者维护提示一再出现。下结论之前,连续两三天每天记一次项目数。
经典还是增强
常见问题里说了两种范围:
- 经典:默认索引文档、图片、音乐文件夹和桌面,在搜索性能和资源占用之间取得平衡。
- 增强:索引整台电脑,包括所有用户文件夹和文件,可能占用更多系统资源。
电脑上有大型项目目录、照片库或者游戏安装目录时,开着增强模式很容易把项目数推到微软说会出问题的区间,换回经典,只加上自己真正会搜的文件夹,往往就够了。
排除不需要搜索的文件夹
微软的排查说明给了两种缩小索引的办法:
- 整个文件夹排除:设置 › 隐私和安全性 › 搜索 Windows › 添加要排除的文件夹,Windows 10 在设置 › 搜索 › 搜索 Windows。
- 精确选位置:在同一页点“高级索引选项”,Windows 10 叫“高级搜索索引器设置”,然后在索引选项里点“修改”,勾选或取消勾选要索引的位置。
适合排除的是那些你从不按名字或内容去搜的文件夹,开发项目里的构建产物和依赖目录、虚拟机磁盘、游戏库、只当归档留着的大批下载。索引选项 › 高级 › 文件类型里,还能调整某种扩展名的处理方式。
用 Outlook 的话,微软建议把邮件同步时间范围从默认的一年改短一些,减少需要索引的内容。
看看索引到底多大
索引数据库在 C:\ProgramData\Microsoft\Search\Data\Applications\Windows 里,Windows 11 是 Windows.db,Windows 10 是 Windows.edb,微软说要看文件属性里的“占用空间”,不要看资源管理器里的大小,因为索引器对稀疏文件做了压缩,列表里显示的大小不准。数据库很大,说明该缩小索引范围,而不是去删这个文件。
先疑难解答,再重建
Windows 10 自带“搜索和索引”疑难解答,微软把它列在正在移除的旧版疑难解答里,较新的 Windows 11 会改为引导到设置 › 系统 › 疑难解答 › 其他疑难解答里的“获取帮助”。
重建放在最后,改完索引范围以后重建一次,正好让索引和新的选择对上。Windows 11 的路径是设置 › 隐私和安全性 › 搜索 Windows › 高级索引选项 › 高级 › 重建,Windows 10 的同一个按钮在高级搜索索引器设置 › 高级里。之后最多 24 小时内搜索结果可能不全,索引器也会很忙,所以最好晚上开始,电脑接着电源。
不要这样做
- 不要为了压住 CPU 就禁用 Windows Search 服务,开始菜单、资源管理器和 Outlook 的搜索都会变慢或搜不全。微软提到有些杀毒软件和“优化电脑”类工具会禁用它,并建议想用搜索就别运行这类工具。
- 不要反复重建,每次重建都要从头再跑一遍漫长的首次索引,先改范围,再重建一次。
- 不要删
C:\ProgramData\Microsoft\Search\Data里的内容,微软只在设置页整页变灰、服务已经无法启动的情况下才这样处理。 - 不要在任务管理器里结束
SearchIndexer.exe来解决问题,索引不会因此变小,剩下的工作在服务下次运行时还在那里等着。
Mole for Windows 不碰索引本身,优化页在这里只有一项“启动 Windows 搜索”,只在服务设为自动启动、却已经停掉的时候出现,也就是崩溃之后的样子,你自己有意关掉的 Windows Search 会保持关闭。Mole 不会重建、删除或者调整索引大小,状态页里也不给索引器提供结束进程的选项,因为它是从 Windows 文件夹里运行的。
其他后台负载可以看 Windows CPU 占用高 和 Windows 优化到底做了什么。
常见问题
Windows 搜索索引器为什么 CPU 占用这么高?
通常是在建立或更新索引,比如刚装完或升级完系统、加了很多文件、或者刚重建过。去设置 › 隐私和安全性 › 搜索 Windows 看一下,显示正在索引就让它跑完,一直完成不了就缩小索引范围。
Windows 建索引要多久?
微软说首次索引可能要几个小时,重建最多 24 小时,超过 40 万项的大索引会更久,也正是从这个量级开始容易出现性能问题。
关掉 Windows 搜索索引安全吗?
不会损坏系统,但开始菜单、资源管理器和 Outlook 的搜索会变慢或搜不全,排除一些文件夹,或者从增强换回经典,通常就能压下 CPU,搜索也照常能用。
需要重建搜索索引吗?
只在状态显示的问题等不好,或者你改了索引哪些文件夹以后再重建,每次重建都会从头开始索引。