小型站内搜索引擎

本文介绍了如何构建一个小型的站内搜索引擎,主要针对PHP官方帮助文档的检索。文章讲解了正排索引和倒排索引的概念,并详细阐述了从HTML文件处理、索引构建到搜索模块的实现过程,以及在项目开发中遇到的问题和解决方法。项目使用了Boost库、cppjieba(结巴分词)、jsoncpp和cpp-httplib等第三方库。
摘要由CSDN通过智能技术生成

写在前面

关于搜索引擎我们平时接触到的再多不过了,谷歌、必应、搜狗等,当然这些搜索引擎都是属于比较大型的搜索引擎,他们基本上是可以对全网的网页数据进行搜索的

通常我们在使用搜索引擎时,我们输入完搜索内容之后进行搜索,搜索引擎会在一个极短的时间内为我们反馈出来上万条甚至几十万条跟搜索内容相关的数据

其实我们知道这个搜索的过程其实是将用户的搜索请求对各个网页的html文件内容进行匹配关键字,说通俗一点其实也就是一堆在文件里面找一段字符串,如果这个文件中有这段字符串,那么就认为这个html文件跟搜索的关键词相关,然后将这个html文件的标题,内容摘要,以及对应在互联网中的URL作为一条搜索结果反馈给用户

对于在文件中查找相关搜索关键词的过程我们不难理解,但是搜索引擎是如何能够在短时间内反馈给用户这么准确并且大量的数据呢,这里我们就要涉及到两个索引:正排索引、倒排索引

 

正排索引

  • 正排索引说通俗一点就是通过一个文档ID,我们可以得到这个文档ID所对应的文档内容

导航的根源在于分类,当有100条信息的时候,我们使用类别来定位信息,当有10000条信息的时候,我们用标签来定位信息,当有100..00条信息的时候,无论怎么分类都是难以寻找的,于是就有了搜索… 当一个网站信息越积越多,搜索将会变得越来越重要。以至于终于有一天,当网站发现50%以上的用户来到你的网站第一件事是搜索的时候,搜索就将成为没有“导航”的导航。因此站内搜索成了网站建设的当务之急。随着网络应用的深入,信息量的爆炸性增长,站内搜索成为每个优秀网站必须具备的功能。纵观中国大中小网站,绝大多数网站在海量数据面前一筹莫展,主要表现为: 1、 搜索结果不够精确。索出来的结果往往不是我们需要的,你不得不进行若干次翻页,才能找到自己需要的内容。 2、 搜索速度慢、极慢。一般的搜索都是通过SQL语句中的LIKE关键字实现搜索功能,但LIKE在数量较大时,速度很慢,甚至会导致服务器磐机。 3、 搜索不到正文。与第二条类似,LIKE关键字只能对短文本进行比较操作,而对正文这种长文本,不能进行操作,这时我们的正文中即使有我们需要的内容,但却不能完成搜索任务。 4、 不支持多关键词搜索。只能对一个关键词进行搜索,在实际搜索中,搜索者一般会通过两个关键词进行搜索,缩小搜索范围,以达成自己的意愿。 5、 超长词条搜索不到结果。如果要让超长词条进行完全匹配,那搜索结果可能会极为稀少或者根据找不到搜索结果。 6、 比以上情况稍好的情况。在有的CMS系统中,可以为正文指定关键词,但由于并非专门的搜索引擎算法及结构,也只能是杯水车薪、望洋兴叹,如1、并不能进行相关度排序,2、必须手动或者半自动完全关键词,3、同样不支持超长词条搜索,4、搜全率低,5、新词不能识别,6、只能对CMS范围内的网页进行搜索,7、人工操作效率低下,等等。 为解决以上问题,边缘工作室经过长期的调研,不断摸索、反复实验,厚积薄发,并根据当前趋势开发出了“易搜索-智能全文检索站内搜索引擎”,简称为YSS,使以上问题迎刃而解。YSS主要有以下特点: 1、如你所需,他是真正的搜索引擎: 2、 网页蜘蛛灵活高效。 3、可控的正文提取。 4、可控的中文分词及新词学习。 5、无人值守。 6、BS架构,虚拟主机支持。 7、强大功能,简单使用。 8、个性化。 9、增强网站软实力: 9.1快速找到访问者所需信息,更好的浏览体验,提高用户操作的友好度 9.2提高的用户粘度 9.3提高的PV量 9.4增强网站技术含量 9.5领先竞争对手 9.6让你的网站更专业
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值