php 搜索引擎优化(蜘蛛程序+分类建立索引+词库+排序算法因素+数据库结构)
优采云 发布时间: 2021-11-26 21:00php 搜索引擎优化(蜘蛛程序+分类建立索引+词库+排序算法因素+数据库结构)
================================================== ================================
从搜索引擎蜘蛛的角度分析蜘蛛抓取网页的过程
搜索引擎需要解决的技术问题分为【蜘蛛程序+分类索引+词库+排序算法因子+数据库索引优化+数据库结构一.蜘蛛】。蜘蛛似乎可以用C或PHP来实现。百度的蜘蛛大部分是用C做的,C还可以支持多个数据库连接接口,C比PHP效率更高,C可以更好的控制底层。虽然C这么好,但我还是想用PHP来做。
时间一定要多节省一些,不能再学C了。以后如果需要高效率,就需要用C,再用C来做。数据库可以保持不变,MYSQL可以连接C,PHP各有优缺点。作为蜘蛛,问题应该不大。最大的问题是它可能很慢。
一. 抓取网页的时候,可能会出现的问题是抓取顺序,抓取不成功或者超时如何记录,以及下次什么时候更新抓取。搜索引擎的数据库一开始是新的,没有任何网址,需要添加大量网址。
这里可以使用for循环语句根据英文字母自动循环。当然,网站的构造不仅是英文,还有数字,只能手动输入。如果还在爬行,估计会漏掉不少。抓取的代码需要分析编码类型是utf-8还是gb231。2.我的搜索引擎只想抓取简体中文。
如果爬取超时,记录下,大约十天后从下一次开始爬取。如果连续爬行3次超时,就会出库。
二. 索引的建立是一个非常困难的问题。
百度和谷歌可以使用自己的服务器群来构建分布式服务器。我没有那么多服务器。所以我想改变方法。创建静态页面。之前我就知道在百度和谷歌上输入一个比较生僻的词需要0.大约2秒,而普通词只需要0. 1秒。而且,第二次重复输入一个单词所需的查询时间要少得多。这主要是指数的影响。
如果把索引放在内存中,读取速度会很OK。我只有一台服务器,就算我只把常用的5万个查询词的索引放进去,估计也有点累了。一个page至少有20K,50000个page就是20K*50=1G。这只是 50,000 字的第一页。如果用户要分页查询,内存肯定是不够的。如果只将第一页放入内存,用户翻页查询,速度问题是无法解决的。所以我将完全静止。模拟一个50000字的查询,然后生成一个静态页面。所有单词的第一页存储在内存中,随后的页面存储在硬盘中。如果能把页面放到内存中,这个问题就解决了。
三.词库。
汉字有几千个,常用汉字至少有3000个。估计有20,000个常用词。如何添加这个词库?使用什么格式存储?CSV 文件或数据库或文本文件?想着找金山词霸的词库文件直接复制试试。这个方法还没有成功。
四.所有影响排序的算法都应该放在一个表中。
然后划分固定算法,即网站本身的因素,和可变算法,即用户输入的词或因不同时间和季节而变化的因素。固定算法放在一个表中,对每个网站计算总分。部分变更算法是之前生成的,一部分是在用户输入之后计算出来的。
五.数据库的索引没有很好的解决办法。
一个表情索引不能太多,太多会影响速度。六. 数据库的结构。这是非常重要的。估计在网站前端界面出来之前,数据库结构必须确定。还
留一个接口供以后升级,比如增加算法因子,或者改变字段以优化查询语句等。初步结构是这样的。