2010-10-06 34 views
1

我必須爲給定的字符串(我必須)搜索大量的文本文件(遍佈Unix服務器磁盤)。 考慮到這將花費的時間和資源,我認爲包含相關令牌的文件列表與投資相比是微不足道的結果。索引一堆文本文件

這感覺不對。

考慮到我不得不解析所有這些文件,建立這個內容的索引是否更有利可圖,至少對於統計來說?

我該怎麼做? 什麼工具?

任何提示讚賞:)

回答

0

如果你必須做一個「一次性」的搜索,建立一個索引可能是矯枉過正,但如果你打算做一個以上的搜索,一個有趣的工具,我聽說過是strigi

它已經打包至少debian,ubuntu,gentoo,是OS和DE獨立,並且有圖形和命令行界面。

+0

strigi看起來不錯,但HP-UX沒有可執行文件。編譯聽起來有點棘手(需要Cmake和東西..)。感謝領先! – ExpertNoob1 2010-10-07 09:10:21

0

文件是否經常變化,以至於維護索引將會成爲問題?如果是這樣,那麼考慮一下你是否會經常使用它來證明時間和努力的合理性,以保持它的最新狀態。

就個人而言,我只是用find/-name \*.txt -exec grep -n "my search string" {} \; 2>/dev/null >/tmp/grep.out(調整參數如適用),然後坐下來聽盤喋喋不休......

0

我用

發現。 -type f -print0 | xargs -0 grep -Pl「字符串」

但後來我開始使用ack,它的速度更快,並在必要時跳過備份文件。

製作一切索引是一項艱鉅的任務。我發現,即使伯克利BDB在數億次參賽後開始放緩。

Lucene(http://lucene.apache.org/)是一個索引全文搜索網站。我假設可以用於索引整個磁盤。

0

嘗試GLIMPSE。它的指數很快並且與數據成比例地保持相對較小的指數,但仍然非常有效地進行搜索。

從cron運行索引器是最簡單的。