索引一堆文本文件

时间:2010-10-06 14:58:20

标签: unix indexing

我必须搜索大量的文本文件(遍布Unix服务器磁盘)以获取给定的字符串(我必须)。 考虑到这将花费时间和资源,我认为与投资相比,包含有关令牌的文件列表是一个微薄的结果。

这感觉不对。

考虑到我 必须解析所有这些文件,建立此内容的索引会不会更有利可图,至少对于统计数据而言?

我该怎么做? 什么工具?

任何提示赞赏:)

4 个答案:

答案 0 :(得分:0)

如果您必须进行“一次性”搜索,设置索引器可能会有点过分,但如果您计划进行多项搜索,我听说的一个有趣的工具是strigi

它至少已经打包为debian,ubuntu,gentoo,独立于OS和DE,并且具有图形和命令行界面。

答案 1 :(得分:0)

文件是否会经常更改以保持索引成为问题?如果是这样,那么考虑一下你是否经常使用它来证明保持最新的时间和精力。

就个人而言,我只是使用find / -name \*.txt -exec grep -n "my search string" {} \; 2>/dev/null >/tmp/grep.out(根据需要调整参数),然后坐下来听一下磁盘聊天......

答案 2 :(得分:0)

我以前用过

找到。 -type f -print0 | xargs -0 grep -Pl“string”

然后我开始使用ack,它更快,如果有必要跳过备份文件。

制作一切索引是一项艰巨的任务。我发现甚至Berkeley BDB在几亿条目之后开始减速。

Lucene(http://lucene.apache.org/)是网站的索引全文搜索。我假设可以用来索引整个磁盘。

答案 3 :(得分:0)

试试GLIMPSE。它快速索引并保持与数据成比例的相对较小的索引,但仍然非常有效地搜索。

从cron中运行索引器是最简单的。