我正在做一个学术项目(搜索引擎),该搜索引擎的主要功能是:
1/-crawling
2/-storing
3/-indexing
4/-page ranking
我的搜索引擎将要爬网的所有站点都在本地可用,这意味着它是一个Intranet搜索引擎。
存储搜寻器找到的文件后,需要快速提供这些文件以进行缓存。
所以我想知道什么是最快的方式来存储和检索这些文件?
首先想到的是使用FTP或SSH,但是这些协议是基于连接的协议,连接,搜索文件并获取文件的时间很长。
我已经读过有关Google解剖结构的文章,我看到他们使用数据存储库,我也想这样做,但是我不知道如何做。
注意:我正在使用Linux / debian,并且搜索引擎后端使用C / C ++进行编码。救命 !
最佳答案
存储单个文件非常容易-wget -r http://www.example.com
将存储example.com整个(可抓取的)内容的本地副本。
当然,要提防生成的页面,其中内容的不同取决于您何时(或从何处访问)页面。
要考虑的另一件事是,也许您并不是真的想自己存储所有页面,而是直接转到实际包含页面的站点-这样,您只需要存储对包含哪些单词的页面的引用,而不是整个页面。由于很多页面上的内容都会重复很多,因此您只需要在数据库中存储唯一的单词以及包含该单词的页面列表即可(如果您还过滤掉了几乎每个页面上出现的单词,例如“ “,”和”,“它”,“到”,“做”等,您可以减少需要存储的数据量。计算每页上每个单词的数量,然后查看比较不同的页面,以查找没有意义的页面进行搜索。
关于c++ - 存储大量的HTML文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23204956/