王志勇 发表于 2022年05月31日 07:54
前几天的回复里,有网友说为什么本博客没有站内搜索功能?于是我回复使用百度的“关键词 site:abc.com”的方法,同时我也联想到了搜索引擎的开发,大家在开发当中,还必须涉及到一些搜索引擎的功能,尤其是站内的搜索功能。其实,除了Google、百度、淘宝、闲鱼、Youku、拼多多等这些具有搜索功能的,还比如Discuz的标题搜索,这些都是搜索引擎。做这个功能不难,问题是当数据庞大时,比如几G的数据库,如何在1秒内完成搜索?
这个算法,至今我还是没有想到怎样实现。知道这个算法的人,只有那些搜索引擎,比如Google、百度、Yahoo、so.com、bing.com等等。
或许他们是使用“分词”的方式,也就是某一个关键词,特别是一些热门关键词,实际上已经提前产生了搜索结果,用户恰好搜索的是这个关键词,那么搜索到的是这个小数据库的区域,实际的数据库,可能只有几K~几百K,所以能在1秒内完成搜索。
我开发搜索功能时,就是使用这种算法,不但搜索极快,而且占用CPU也极小,无限接近静态HTML页的资源占用率。
但是,这些搜索引擎平台,又好像不是完全提前用“分词”的方式,因为一篇新博客,几乎用任何关键词,都能搜索到,好像他们用的是全文,也就是全数据库搜索的方式。(这些搜索引擎平台,也可能同时用了多种算法。)
全文搜索,那可就非常占资源了。比如淘宝平台,光是标题的数据库,恐怕也能达到几十G以上,全数据库搜索就是每次都要把这个几十G的数据库,从头到尾读取一遍。
由于全数据库搜索占用的服务器资源是惊人的,所以使用这个方法的搜索功能是很难实现的,这就是为什么新浪博客没有搜索博客正文的功能,太吃资源了!
置顶的文章:
论朋友圈可以发什么?
短信验证开发的方案分享
巡回更新:2018-09-21
速度是永恒的主题
UTF-8、HTTPS原来都是浮云
https安全吗?
独立博客有必要安装https吗?
近期的主题:
夜晚靓歌(10):你没看过的《星雨心愿》
Feedval、Blogval将下线/谈理财和生存
2024.9感言
人生讨论(20):有人借钱怎么办?(2)
人生讨论(19):迄今为止最强的情感频道
数码评测(67):让小米/红米手机的反应提高1~2倍
数码评测(66):无线网卡FW150UH VS FW150UH
数码评测(65):如何快速自制CPU天梯图?
数码评测(64):2024年,你还在用VGA线吗?
人生讨论(18):6年就可以实现财务自由
人生讨论(17):为什么总是受欺负?
人生讨论(16):要钱的最新妙招
创业杂谈(17):什么项目能赢利?
人生讨论(15):有人借钱怎么办?
数码评测(63):高清切换超级神器
数码评测(62):再谈视频的尺寸
数码评测(61):近期数码采购和折腾
人生讨论(14):看穿尊重
数码评测(60):图拉丁-最佳中配工作“免费”手机
创业杂谈(16):博客何时终结?
版权声明:本博客所有文章,均符合原创的定义,禁止转载,违者将必究;正确的方法是贴原文的标题和网址即可。
与此相关的链接
自由勇专栏
Blog存档 Archives
2022年07月
2022年06月(15)
2022年05月(20)
2022年04月(16)
2022年03月(9)
2022年02月(9)
2022年01月(10)
2021年 +