我正在尝试使用 SQL 查询 Windows 桌面搜索 API。
我不得不说我真的很讨厌 windows 7 搜索 GUI,所以我决定自己写。我有很多被索引的文件(大约 1.000.000),我想搜索名称。类似的东西:告诉我每个包含“兔子”的名字。
但是在这里我遇到了性能问题。正在寻找
SELECT "System.ItemPathDisplay"
FROM "SystemIndex"
WHERE System.FileName LIKE 'egon%'
真的很快。也是%egon
替代方案。但%egon%
需要永远。我不确定这是指数的性质(我知道可能性会大大增加)还是我做错了什么。
问题是:
- windows索引只是一个大的SQL数据库对吗?
- 如果是这样,我在哪里可以找到有关数据库结构(主键、索引)的确切信息。
如果我有,它基本上只是优化 SQL。
替代问题:是否有人知道快速 SQL 语句来查找名称中某处带有egon的所有文件。
编辑:为什么我不喜欢搜索 GUI
好吧,与 XP 相比,它只是不直观。如果你禁用狗并使用旧的 XP 界面,我可以创建一个搜索查询,如:
- 超过 1 个月的所有文件
- 大于 10 MB
- 名称模式
*_homework_*.docx
在不“学习”语法的情况下在 Windows 7 中尝试此操作。地狱,我不想为了找到一个文件而学习另一种语法。
另一个主要问题可能是我的搜索习惯。大多数时候,我以某种方式知道文件名(或部分)并且只是想要位置。如果您以这种方式使用搜索,您会遇到几个问题:
- 首先,您必须始终在其前面加上名称:
- 然后文件夹名称布局很愚蠢(我认为它是按父文件夹排序,而不是完整路径,因为.. tada ...见下一点)
- 然后,更烦人的是,如果您有一个结果列表并尝试对它们进行排序,则需要很长时间
现在我真的认为我的系统有一个错误。我试图快速检查它,在一些平均大小的文件夹中搜索“测试”,他找到了一些文件。然后我尝试将它们分类为文件夹(以验证我的第二点),现在他只是在永远搜索......我的意思是说真的,当我打字时他试图找到“你好”这个词......哦,完成了 - 他找到大约 20 个文件。所以,现在,让我们尝试一下……好吧,现在看来他已经康复了……但是,为了我的口味,慢点……
所以,关于搜索的诅咒已经够多了:-)