搜索引擎基本概念:爬取、索引、召回、粗排及过滤重复文档
01
搜索引擎基本概念:爬取、索引、召回、粗排、精排、重排
爬取 & 索引
搜索引擎对遍布互联网的庞大页面进行抓取→对抓取到的页面进行初步的质量评估→从中筛选出质量较高的网页→构建倒排索引(以便通过关键词检索文档)
[id_198083503]
用户提出搜索指令 → 搜索引擎首先对关键词进行错误修正 → 将其分解为若干个词组 → 在索引数据库中检索匹配这些词组的文档,数量可能就是如此之多。
粗排
文档数量确实庞大,若全部一股脑地推给用户,实属不妥,因为用户不可能通篇阅读,他们只会关注其中极小的一部分内容,而且也无法确保这些内容的品质。
因此,需在庞大的文档集中剔除那些内容极其相似的文件,同时挑选出与用户搜索关键词高度匹配的760份文档,以便向用户展示。
这一阶段是海选过程,涉及大量计算任务。为了确保用户不会因等待时间过长而感到不便,通常我们会采用快速且相对简便的处理方法。这些方法包括但不限于BM25、TF-IDF和LDA等。至于还有哪些具体方法,我们并不是很清楚。
精排
之后便进入了对760篇文档进行排序的阶段,其核心目标是确保排序结果尽可能地与用户的期望相吻合,以便用户更倾向于点击查看详细信息,进而增强搜索服务的商业价值。
这部分的工作远比初步筛选来得复杂,它涵盖了众多算法,诸如数据挖掘、机器学习、用户行为剖析以及用户意图辨识等,具体包括:
这个过程与搜索引擎中的信息抓取、建立索引、检索结果、初步排序以及精细排序等环节相对应,是搜索引擎基础知识中不可或缺的一部分。
重排
在完成精排之后,还需进行进一步的重新排序。这一过程会根据用户的搜索背景,包括网络环境、使用设备以及最近的点击活动等因素,进行实时的调整。同时,也会结合当前媒体的热点话题,对排序结果进行相应的优化。
02
[id_1104586156]
研究收录 vs 研究排名
在十六年前,我本以为探究“排名”最为棘手,然而涉足众多单页站群、泛站群、资讯站群以及寥寥数个独立站点,总计约十万域名,却发现“实现收录”实则远比“实现排名”更为复杂,甚至面对广告主时,他们时常无故削减流量、拖欠款项、域名解析中断等问题,这些在我看来,都比研究排名更为繁琐。
在16年之前,我所接触的都是大型网站,日访问量达到百万级别,因此收录方面的问题并不显著,通常只是某个特定目录的收录率有所下降,但并未出现完全不收录或收录速度极慢的情况。
毕竟,大站参与排序的概率相当高,然而,众多小型站点却连被召回的机会都未曾拥有。
研究大站 vs 研究小站
所以,本渣觉得,大站与小站,研究排名,是两种路线:
大站研究的是,做的词怎样上首页。
小站研究的是,做哪些词能上首页。
研究的方法有两种:正推 和 逆推
03
正推
正推法涉及设定一系列假设条件,然后逐一验证这些条件是否能够实现预定的目标。以快速排序算法的开发为例,这一过程主要采用正推法,并且需要执行大量的测试工作。
逆推法,即通过研究既得的结果,挖掘出它们之间共有的特征,这一过程要求进行大量的细致观察。
仅研究百度SEO排名规律上,正推的门槛极高。
曾几何时,我搜集了1000个具有相同词根的词汇,对其进行了搜索,并下载了每个词汇下760个搜索结果对应的网页。经过整理,我记忆中总共不超过40万篇,其中约有一半的搜索结果内容是重复的。
随后,我将这些网页导入至xunsearch——这是一个开源的搜索引擎,并非因为其性能优越,只是因为那时的我仅熟悉这一工具,尚不了解elasticsearch的存在——并成功创建了倒排索引。
同时我还把默认词库整理了下,让这部分行业词分词更准确。
我的想法是:
在xunsearch和baidu平台上对同一词汇进行检索,对xunsearch的搜索参数进行细致调整,力求得到与百度搜索结果高度相似的结果,例如,两者的top10文档内容基本一致,尽管排列顺序存在细微差异。
我将对网页内容进行编辑,随后将更新至xunsearch索引库,并执行一次xunsearch搜索。若修改后的内容能进入搜索结果的前十位,则线上网页将采用此次修改后的版本上线。若未能进入前十,则需对其他部分进行修改,直至内容能够出现在搜索结果的前十名。
理想丰满,现实骨感。
无论如何,初始阶段始终未能实现,究其原因,商业搜索引擎与开源搜索引擎在众多方面存在差异。
然而,这仅适用于百度,对于其他搜索渠道,比如研究微信的“搜一搜”、知乎、小红书的排名规则则相对简单得多。首先,这些平台并不存在收录难题,只要内容不违规,就能被收录;其次,影响排序的因素相比百度要少得多。
anyway,正推我是放弃了
04
逆推
下面说说当时做的逆推的思路,相对来讲,逆推比正推省事很多。
长尾关键词
很久以前,在进行站群建设时,那时所开发的并非是能够容纳无限关键词的泛解析程序。库中存储的词汇量决定了程序能够生成相应数量的页面或是二级域名。
这表明,若数据库中充斥着根本无法登上首页的关键词,那么这无疑是对系统资源的浪费;加之新域名的收录空间有限,因此我们更期望收录的页面,都是那些有很大可能性能够获得排名的页面。
一个流量词呢,在搜索结果表现,有4种特征:
该词汇的竞争激烈,或许它本身就较为敏感,例如涉及医疗养生领域的内容,因此百度特意将这些内容导向了那些信誉度较高的大型网站。
该词可能属于禁用范畴,然而百度尚未察觉此情况,亦或是该词尚未被广泛认知。我们可以通过观察搜索结果的标题是否精准对应关键词来辨别,若能准确匹配则为前者,若无法匹配则为后者。
第三种是这个词是违禁的,且已经被百度发现删除
第四种是正常的词,比如不算热门的小说、漫画名啥的
对于已经按照优先级排列的清洗关键词步骤,首先需要识别出第一种和第三种词汇,随后将其移除。
在挑选词汇时,譬如从爱站导出的竞争对手网站的关键词,我们通常会依照上述步骤进行筛选,筛选完成后便投入使用。在域名数量相同的前提下,这样的操作能够帮助增加25%的流量。
此部分主要探讨了研究长尾词如何有较高概率实现首页排名,接下来,我们将讨论核心词的排名问题。
独立核心词排名
过去存在一种词汇推广技巧,以“SEO”为核心关键词时,会同步推广衍生出的新词汇,例如“SEO流量贩子”,并且还会将网页标题更改为这一词汇。
通过“恰当的刷量比例”以及“时间上的适度延长”,两者之间将建立起联系,其中,“SEO流量贩子”代表了“SEO”搜索意图的一种具体形式。
此类“SEO流量贩子”一旦成功登上首页,通过增加对“SEO”的点击量,从而提高了核心关键词“SEO”登顶首页的可能性,这比单纯直接点击要更有效果。
在以往,每当在百度指数的选项中或百度搜索框的下拉菜单里,总会出现一些杂乱无章的词汇。
判断网页与核心词的真实相关性(排除点击加权)
自然,这并非一成不变,而且也与百度对网页内容与关键词之间关联性的判断密切相关。
诸如众多热衷于刷快排的网站,其网页设计杂乱无章,难以称得上是SEO友好,排名很大程度上依赖于点击量的加权,而非内容的关联性,因此一旦快排结果出现波动,便容易遭受打击。
在遇到此类问题时,我们可以在查询的关键词之后附加一个无足轻重的符号,例如:「华为薪资,」。
搜索引擎在处理用户的查询时,首先进行纠错和分词,召回相关结果,纠错环节涉及移除杂乱无章的符号,随后再进行排序。
然而,华为的薪酬这一表述并未纳入点击加权的考量范畴,这主要是因为该词并未受到用户的点击关注。此外,该符号对于“华为工资”这一核心词汇的相关性排序影响甚微,原因在于每篇文档中都包含大量的句号。
因此,您会发现“华为薪酬”的排列顺序与“华为薪酬”相差无几。然而,当对比“搜索引擎优化”的搜索结果与“搜索引擎优化”本身,差异则显得尤为显著。
亦或是将关键词进行拆分以进行检索,例如搜索「华为薪酬 指定企业 薪酬待遇」,亦或是连续输入「华为薪酬 华为薪酬」两次。
海量核心词排名
但如果有很多核心词怎么办?
比如某类词根,如:
long long time ago,本渣的做法是:
1)把这批词,全部扔到百度搜索框,依次提取下拉框的词
2)计算每个后缀的出现频次
挑选那些在关键词搜索结果中频率较高且标题精准匹配关键词的词缀,用于丰富网页标题。
以某座城市的企业为例,若仅以「{XX}公司」作为标题,就显得有些过于简略,毕竟这样的表述之后,还有人在进行搜索。
然而,并非每个词尾都可以随意添加,因此问题在于:选择哪个词尾,才能较大程度地确保“XX公司”与“XX公司{后缀}”都能获得较好的排名呢?
在我国超过300个的县级市中,超过60%的城市在下拉菜单中会显示“排名”这一选项。实际上,“名录”和“黄页”这两个词的出现频率同样很高,与“排名”不相上下。然而,由于使用这两个词缀的人较多,导致搜索结果标题中完全匹配的数量较多,因此最终选择了“排名”这一词汇,使得标题呈现为“北京公司排名”。
结果是,二三线城市差不多都上去了。
一线城市未能跻身其中,原因在于搜索需求极为多样,涵盖了诸如代办、摇号、转让等多种服务。
本渣觉得,写到后面,好像跑题了
GoGo闯于方庄
文章评论