如何使用Windows快速搜索我的代码?

时间:2011-03-24 10:39:21

标签: windows search indexing

除了在Windows中,我遇到与this question相同的问题。我们的产品有100多MB的代码库,在那里搜索东西需要花费大量的时间(几分钟)。当你可以将搜索范围缩小到特定的子文件夹时,这很好,但这并不总是可行的。

我想知道是否有一些工具可以让它更快,可能是通过编制索引。准确性至关重要,如果子字符串存在于某处,则必须找到它,即使文件未编入索引或索引已过期。如果在搜索时忽略.svn个文件夹,那将是理想的。

如果做不到这一点,我想知道自己是否能做出类似的东西。是否有可用于此类任务的现成索引引擎?我想知道Windows索引服务(或者现在称之为的任何东西),但到目前为止,我对它的体验(Windows标准文件搜索工具)相当令人沮丧,它经常缺少正确的文件。

1 个答案:

答案 0 :(得分:0)

是的,我也看过Window Indexing服务未命中文件,但我没有检查KB或用户论坛以获得解释。我很高兴看到它证实这不仅仅是我; - )!

看起来有很多可用的文件索引程序,如果找不到符合您需求的程序,我会感到惊讶(尽管如下)。

以下是需要考虑的事项:

如果您的团队正在使用IDE,是否有索引功能/插件? (没有一个SVN提供索引功能?)。 同样,在您的问题中添加一些标签,以便其他Windows开发人员使用您正在使用的相同开发环境进行查看。

您提供的SO链接提到了几个选项:slocate,rlocate,我发现了mlocate。 slocate的维基百科页面说 Locate32 for Windows Windows analog of GNU locate with GUI, released under GNU license 这似乎符合您的主要要求。使用多标签界面(一个标记为高级)查看屏幕截图会让我希望您可以排除svn(至少从结果中排除,可能来自索引的内容)。

您对

的要求
  

如果某个子字符串存在于某个地方,那么   必须找到,即使文件不是   索引或索引已过期。

似乎很矛盾。对于子字符串要求,我可以看到许多索引程序忽略了语法元素({([])}等等,例如,“then”被删除,因为它被认为是一个干扰词,或者它得到了由于它是噪音词而被删除,因此被删除了。

要获得“必须找到”,并且确实确定,您必须开发一个测试套件,以查看索引程序对于任何极端情况所做的事情。 (对于一个100 MB的代码库,这不是不可能的,特别是因为你正在考虑自己推出)。

最后'即使文件没有编入索引......'。好吧,你要么使用索引,要么不要(显然)。不幸的是,根据您的要求,虽然rlocate一直在寻找变化,但似乎没有slocate(在Unix上)。可能如果您在文档或用户论坛上阅读/检查locate32,您将获得所需的答案。

Rlocate会为您提供所需的内容,但是rlocate page'rlocate只适用于版本为2.6的Linux。'。 mlocate似乎没有Windows端口。

最后,我发现这是一个有趣的关于mlocate的链接:mlocate vs rlocate。这是谷歌缓存,因为redhat.com说“不可用”。