我们在Linux机器上的一大堆文件夹中有很多代码,查询。每当我必须找到一个脚本时,我都会fgrep -ircl --include=*.{sql, py, sh} "Keyword" *
。
我打算创建一个简单的搜索界面(web),它允许您搜索关键字,文件类型并显示文件的位置以及生成的文件的摘录。 Lucene可能是一个很好的候选人,但我不想为此目的创建我所有文件的副本。
我计划在非工作时间每天使用Python脚本索引文件。更像是谷歌桌面我猜,但对于网络(跨平台可用性)。
你们有什么建议是完成这项任务的最佳方式?
答案 0 :(得分:0)
我写了一个perl脚本waaaaay,当提供web界面结果时,如果你想看的话,仍然可以在我已弃用的blackbeltvb.com网站上运行。它虽然进行了实时搜索,没有编入索引,也没有摘录。
我还搜索了wugnet.com,它对排名结果和摘录进行了排名,并构建了现在在QB Desktop中的搜索。在你的情况下,我会采取这种方法 - 只需要一个cron作业,将新的或更新的脚本/文件添加到数据库,一个大文本字段,其他字段包含文件名和类型等元数据。然后在该数据库中有一个Web界面,搜索:
select * from data where keyword like '%word%' and keyword (or keyword) etc...
有关blackbeltvb.com的常见问题解答,其中显示了如何为排名的关键字结果构建SQL搜索,例如: “找到所有关键词”,“有些找到”等等......
答案 1 :(得分:0)
使用Python,Xapian是您应该考虑的唯一解决方案。它比Lucene更“裸露”,但它对Python绑定到本机C ++实现具有第一类支持,并且比Lucene使用真实世界数据集更小更快。我的意思是大数据集。