我必须搜索大量的文本文件(遍布Unix服务器磁盘)以获取给定的字符串(我必须)。 考虑到这将花费时间和资源,我认为与投资相比,包含有关令牌的文件列表是一个微薄的结果。
这感觉不对。
考虑到我 必须解析所有这些文件,建立此内容的索引会不会更有利可图,至少对于统计数据而言?
我该怎么做? 什么工具?
任何提示赞赏:)
答案 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中运行索引器是最简单的。