我无法让 Windows Search 索引带有.sql
扩展名的文本文件的内容。我做错了什么吗?
背景:
我在工作中使用一个叫做Navicat它帮助我使用我们的 MySQL 数据库。当我使用 Navicat 编辑和保存查询时,它会将它们存储在.sql
Program Files 中 Navicat 目录中的文件中。
由于 Windows Search 默认不会索引 Program Files 内的文件,因此我将其添加到索引位置列表中,如下图所示:
我还进入了高级部分并添加了.sql
文件扩展名并选择了Index Properties and File Contents
选项。这将过滤器描述设置为Plain Text Filter
:
但是,每当我搜索希望在文件中找到的文本(.sql
例如)时,saw_order.Wo type:sql
它都不会返回任何文件。搜索是如果我搜索的是姓名文件的,但绝不会将其内容与.sql
文件一起。
这些.sql
文件是纯文本文件,可以用记事本轻松打开和编辑。Navicat 只是添加了一些智能感知和组织功能,但除此之外,它就是纯文本。
为什么 Windows Search 看不到这些文件的内容?
我是否需要在 Windows 搜索中添加一些特殊插件才能识别这些文件?
注意:我正在使用 Windows Search 4.0 和 Windows XP SP3。
答案1
似乎 Windows Search 在读取文件格式时存在问题,即使设置为纯文本也是如此。这是已知问题甚至被提出这里是超级用户!
目前我最好的建议是使用可以搜索文件内容的程序。它可能不如索引那么快,但希望它可以帮你完成工作。
我推荐四种出色的工具:
特工搜捕(免费软件):
NirSoft SearchMyFiles(免费软件和便携式软件):
便携式文件搜索器(免费软件):
答案2
确保您的注册表中的以下位置有以下项:
Computer\HKEY_CLASSES_ROOT\.sql
[HKEY_CLASSES_ROOT\.sql]
"Content Type"="text/plain"
"PerceivedType"="text"
[HKEY_CLASSES_ROOT\.sql\PersistentHandler]
@="{5E941D80-BF96-11CD-B579-08002B30BFEB}"
然后重新索引。
答案3
如果索引本身存在问题,我会尝试告诉搜索查看未索引文件的内容。
转到任何资源管理器窗口,然后按,Alt然后转到工具>文件夹选项,然后单击搜索选项卡,勾选带圆圈的选项:
答案4
文章Windows XP 搜索错误状态:
Windows XP 不会搜索所有文件,以提高搜索性能并避免出现无关结果。无论您在搜索时是否使用索引服务,都会发生此行为。因此,Windows XP 有一个已知问题,即当您搜索“包含文本”的文件或使用“文件中的单词或短语”选项时找不到许多文件类型。
这个问题可以针对许多文件类型进行补救,但不是全部。原因是注册表中缺少此类文件的 PersistentHandler 值。
方法#1
下载VB 脚本(作者道格·诺克斯)。将刚刚下载的文件保存到硬盘。找到刚刚保存的文件并双击。输入要修改的文件扩展名。如果 PersistentHandler 子键存在,则不会进行任何更改。如果该文件类型不存在该子键,则注册表将进行相应更新。完成要更改的文件类型后,请重新启动。
方法 #2
多发性硬化症知识库 309173有另一个针对此错误的修复程序。要将 Windows XP 配置为搜索所有文件(无论文件类型如何),请获取 Windows XP 的最新服务包(当前为 SP2),然后打开索引具有未知扩展名的文件类型选项。
如果使用此方法,Windows XP 将在所有文件类型中搜索您指定的文本。
这会影响搜索功能的性能。为此,请参阅上面的说明文章。