当用户在文本编辑器或者文字处理软件中搜索一个单词或者句子的时候,软件就会对文件进行扫描并寻找那个单词或者句子 。如果读者曾经使用过linux、Unix或者OS X的grep程序,或者曾经使用过windows内置的文件搜索功能来查找包含特定单词或者句子的文件,那么应该就会注意到,被搜索文件的数量越多、体积越大,搜索花费的时间也会越长 。
与在本地电脑上面进行的搜索不同,在Web上面搜索Web页面或者其他内容的速度总是非常快的,即使在文档的体积和数量都非常巨大的情况下,也是如此 。在这一节中,我们将学习如何改变程序搜索数据的方式,并使用redis来减少绝大部分基于单词或者关键字进行的内容搜索操作的执行时间 。
为了给遇到问题的用户予以帮助,Fake Garage创业公司建立了一个由疑难解答文章组成的知识库 。最近几个月以来,随着知识库文章的数量和品种不断增多,使用数据库驱动的搜索程序也变得越来越慢 。因为Redis具备构建内容搜索引擎所需的全部功能,所以我们决定使用Redis来构建一个新的搜索程序,从而提高对知识库文章的搜索速度 。
我们首先要做的就是思考这样一个问题:比起一个单词接一个单词地扫描文档,如何才能以更快的速度对文档进行搜索?
7.1.1 基本搜索原理为了获得比扫描文档更快的搜索速度,我们需要对文档进行预处理,这个预处理步骤通常被称为
推荐阅读
- 教你如何沏白茶,百合山药茶的做法
- IDE 最佳Android应用程序开发工具
- 什么是数据结构
- 丹参酮胶囊治疗痘痘的效果如何
- 苦荞茶如何喝,苦荞茶养生
- 挪威森林猫如何选购
- 金针梅如何鉴别,如何鉴别铁观音的品质
- 人力资源|聚焦!高离职率下的酒店行业,如何用灵活用工撬动壁垒?
- 老茶头可以煮吗,如何冲泡老茶头
- 慢性肾小球肾炎如何治疗