搜索引擎的原理在我们之前的文章中也提到过,本质上搜索引擎实质上就是抓取、索引、排序的过程,那如何用简单的方法对站内搜索进行优化呢?
抓取
爬虫抓取这一步基本上可以省略,因为我们站内数据已经存放在我们自身的数据库中了,那这一步还需要做什么?
去除杂质:这一操作主要是为搜索结果环境做初步筛选,对内容进行清洗,最终以统一的格式提交给索引程序来执行创建索引。
1、去除重复内容
2、去除低质量或违规内容(需要制定低质量标准或违规词典)
3、屏蔽不想参与搜索的内容
4、……
这个清洗的标准视个人需求而定,以上列举了三种比较常见的,具体还需要结合自身行业和实际情况制定清洗条件。
网页标题 | 主题内容 | 页面创建时间 | 页面更新时间 | 网页导入 | 网页UV |
WordID:[ title:江西湖州古茗奶茶总部在哪?品牌加盟只能来这里,content:古茗奶茶是近几年加盟的黑马......,time:2020-02-16 13:10:07,leading-in:32,uv:109 ]
索引
1、做一个超简单的正排索引
正排索引这一步便是要对我们所有符合标准的信息进行初步索引处理,延续抓取索引格式对索引格式进行丰富,形成索引文件。
- 内容分词(可借助分词工具)
- 去停止词
- 通过标题以及内容进行关键词提取并记录TF(词频)
- 为关键词赋予ID
做完以上动作我们完成了一个简单的正排索引文件,形成以下形式:
WordID:[ title:江西湖州古茗奶茶总部在哪?品牌加盟只能来这里,content:古茗奶茶是近几年加盟的黑马......,time:2020-02-16 13:10:07,leading-in:32,uv:109 ,keywords:1(id-TF)|2(id-TF)|3(id-TF)......,]
2、再做一个超简单的倒排索引
这一步我们需要把抓取提交过来的统一索引格式数据进行分存:
第一部分:记录关键词(id)和在多少文档中出现过。
第二部分:记录文档ID、关键字出现次数、文档发布时间,文档更新时间,网页被推荐数,文档uv。
keywordID:[ id:2333,DF:15 ]
WordID:[ id:857,keywordID-tf:id-TF|id-TF|id-TF......, time:2020-02-16 13:10:07,leading-in:32,uv:109 ]
形成这样两部分之后我们的简单倒排就做完了,现在我们通过关键词已经能匹配到所有包含其关键词的所有文档了,这个时候我们就可以进入排序环节了。
排序
到排序这一环节就简单多了,由于我们是做一个简单的所以考虑因素会相对较少一些,我们接下来会利用文档质量得分、文档发布时间、文档更新时间、网页获取推荐数量、文档本身uv这些参数来进行综合计算排序。
1、TF-IDF计算出我们的关键词得分;
2、发布时间与当前间隔得分(需要自定义一个评分标准);
3、更新时间与当前时间间隔得分(需要自定义一个评分标准);
4、根据当前内容被推荐次数计算得分(需要自定义一个评分标准);
5、根据页面被用户访问次数来计算得分(需要自定义一个评分标准);
最后我们再将这些得分综合计算用于排序,虽然我们的排序看似简单,但是基本上已经用到了搜索引擎比较有特点的一些算法和关注点,包括TF-IDF算法、时效性、简单的PageRank推荐算法以及一个简单的用户体验。
最后一步
最后也是最最重要的一步就是搜索词与关键词匹配,这里为方便大家理解,还是使用我们上一期相关搜索模型中的【分词+向量模型】技巧解决近义词问题。到这里一个简单的站内mini搜索引擎已经建立好了,当前如果要做出好的搜索引擎更是需要不断的测试、思考、迭代才能做得越来越好。
发布者:超威蓝猫,转转请注明出处:https://seowki.com/seo/baiduseo/4183.html