Windows搜索不索引带有.SQL扩展名的文本文件的内容


10

我无法让Windows搜索索引具有.sql扩展名的文本文件的内容。我做错什么了吗?

背景:

我在工作时使用了一个名为Navicat的程序,该程序可以帮助我处理MySQL数据库。当我使用Navicat编辑和保存查询时,它会将它们存储在.sql位于Program Files中Navicat目录中的文件中。

由于默认情况下Windows Search不会在程序文件中索引文件,因此我将其添加到已索引位置的列表中,如下图所示:

在此处输入图片说明

我还进入了高级部分,添加了.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。


Answers:


7

Windows Search读取文件格式似乎存在问题,即使以纯文本格式设置也是如此。这是一个已知的问题,甚至已经在Superuser上提出过

目前,我最好的建议是使用可以搜索文件内容的程序。它可能不如将它们编入索引那样快,但是希望它可以为您完成工作。

我推荐四种出色的工具:

特工Ransack(免费软件):

替代文字

NirSoft SearchMyFiles(免费和便携式):

替代文字

Windows Grep

替代文字

便携式文件搜索器(免费软件):

替代文字


感谢您的建议。我确实更喜欢可以修复Windows桌面搜索的集成解决方案,但是也许我会看一下您推荐的某些软件。
本麦考马克2009年

尽管我宁愿只修复 Windows桌面搜索,但我非常感谢您投入时间提供详细的答案。我将不得不检查其中一些工具。非常感谢!
本麦考马克

不客气!
约翰T

4

确保在此位置的注册表中具有以下项:

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}"

然后重新索引。


2

如果索引本身存在问题,我将尝试告诉搜索以查看未索引文件的内容。

转到任何资源管理器窗口,然后按,Alt然后转到“工具”>“文件夹选项”,然后单击“搜索”选项卡,勾选带圆圈的选项:

在此处输入图片说明


我不认为这些选项在Windows XP中会以这种方式显示(除非已通过组策略在我的PC上将其禁用,但我对此表示怀疑)。
本麦考马克2009年

1

许多搜索引擎需要某种模块,通常称为“连接器”,以弄清楚如何解释文件。

我注意到在屏幕截图中,SQL文件被列为“纯文本”。即使该文件只是纯文本,Windows搜索也可能期望.sql文件不是文本,而是将其忽略。

要检验假设,请复制文件,将扩展名更改为“ .txt”,然后强制重新索引。

其他检查,也许使用功能更强大的文本编辑器(我最喜欢的是gVim- http://www.vim.org/download.php#pc)来查看文件的初始“幻数”是否与普通文本文件。


我不确定SharePoint是否使用称为iFilter的东西,而WDS可能使用相同的东西,尽管我不确定。我根据您的建议尝试了gVim。据我所知,.sql文件和.txt文件似乎没有什么不同。但是,我可能没有正确看待某些东西。
本麦考马克

本·麦考马克,您尝试过我建议的实验吗?
pcapademic'1

1

Windows XP搜索错误文章指出:

Windows XP不会搜索所有文件以增强搜索性能并避免产生不必要的结果。无论您在搜索时是否使用索引服务,都会发生此行为。因此,Windows XP存在一个已知问题,当您执行“包含文本”的文件搜索或使用“文件中的单词或短语”选项时,找不到多种文件类型。

可以对许多文件类型(但不是全部)进行补救。原因是此类文件的注册表中缺少PersistentHandler值。

方法1

下载此VB脚本(由Doug Knox撰写)。将您刚刚下载的文件保存到硬盘上。找到您刚刚保存的文件,然后双击它。输入您要修改的文件扩展名。如果PersistentHandler子项存在,则不会进行任何更改。如果该文件类型不存在,则注册表将相应更新。完成要更改的文件类型后,重新启动。

方法#2

MS KB 309173对此错误进行了另一个修复。要将Windows XP配置为无论文件类型如何搜索所有文件,请获取Windows XP(当前为SP2)的最新Service Pack,然后打开“索引扩展名未知的文件类型”选项。

如果使用此方法,Windows XP将在所有文件类型中搜索您指定的文本。

这会影响搜索功能的性能。为此,请参阅上述文章中的说明


感谢您与本文的链接,但是这两种方法似乎都不起作用。我运行了VB脚本,并且密钥已经存在。我按照方法2中的建议更改了注册表值,然后重新索引了我的文件夹,但它仍然无法正常工作。也许您指的是“ Windows搜索”而不是“ Windows桌面搜索”,后者是为Vista开发的,但在Vista之前也为XP发布。
Ben McCormack,2010年

我相信我给出的链接本质上是正确的,因为.sql扩展名的PersistentHandler是错误的,需要替换。但是,需要更多的研究来确定它。
harrymc


1

我只能想到两件事:

  1. 文件本身尚未被索引(因此它们以文件名搜索而不是内容搜索的形式显示)

  2. 我还建议进行测试...尝试将一些SQL文件放在“程序文件”文件夹之外,并将该文件夹包括在索引位置列表中。程序文件中的文件夹上可能存在权限问题?


感谢您的建议。该文件已经存在很长时间了,我的PC上的Windows搜索也是如此。我将重建整个索引,看看是否有帮助。
Ben McCormack

那没有用:/。索引已完成,仍然找不到任何匹配项。
本麦考马克2009年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.