搜索引擎优化策略( 如何快速搭建起一个高质量站内搜索引擎呢?(组图))

优采云 发布时间: 2021-10-21 11:20

  搜索引擎优化策略(

如何快速搭建起一个高质量站内搜索引擎呢?(组图))

  

  一、本站搜索的意义

  对于媒体内容网站、电子商务、SaaS服务等B端企业来说,增加“网站搜索”功能帮助用户快速找到自己想要的内容是为了提升用户体验,降低跳出率,提升用户转化率. 好主意。

  另一方面,网站搜索也是帮助B端企业快速采集用户真实想法的好工具。用户每次搜索和点击,都是对其网站内容的反馈,尤其是没有结果的搜索词。它也是帮助我们改进网站的重要第一手信息。

  那么如何快速搭建一个高质量的网站搜索引擎呢?接下来我会写一系列文章来详细讲解站内搜索的方方面面,欢迎大家继续关注。

  今天,我们先从产品层面谈如何优化搜索排名结果。

  二、从原搜索算法说起

  要深入了解搜索,必须从搜索引擎的起源说起。任何复杂的系统都从一个简单的系统开始,然后逐渐演变。然而,一旦出现就很难设计一个复杂的系统。所以我们必须回到源头,从源头谈理解搜索。

  

  1990 年代,TREC(全球文本检索会议)组织了一系列年度研讨会。本次研讨会的主要目的是为“非结构化长文档”组成的数据集寻找最优搜索算法。TREC在搜索引擎算法上做了很多优化,其中TF-IDF算法应该是当时最好的排序算法的主要组成部分。

  TF-IDF 算法,就像它的名字一样,收录两个关键元素,“词频 TF”和“逆文档频率 IDF”。搜索排名是对这两个元素进行统计加权后得到的。

  词频(TF,词频)。词频TF是指文档中“搜索词”出现的频率。逆向文档频率(IDF,逆向文档频率)。逆文档频率 IDF 指的是“搜索词”在整个语料库中的频率。

  当用户键入“搜索词”时,首先比较整个文档库中哪些文档收录最多的“搜索词”。收录的越多,该文档的排名就越高。

  这个简单的规则有一个致命的问题。在我们的语言中有很多连词、代词、助词等只是用来辅助句子表达的。例如,诸如“?”、“也”、“这个”和“但是”等词不是文档的核心内容,应减少权重处理。

  这时,我们引入第二个关键元素——逆文档频率 IDF。它的作用是降低语料库中频繁出现的词的权重。一个词在语料库中出现的次数越多,收录这个“搜索词”的文档的排名就越低。

  TF-IDF 的设计是否简单巧妙?TF-IDF排序算法和BM25等类似算法基本上是古代搜索引擎查询排序的核心算法。该类算法主要针对非结构化长文本,如大型企业文件、历年判决文件、全球论文检索数据库等。

  这样的算法是搜索引擎的基石。充分了解他们的原则有助于我们设计自己的网站搜索。接下来,我们来谈谈如何设计和处理独立站、小程序、APP应用中的搜索问题。

  三、如何通过数据属性优化排序结果

  今天不谈搜索技术问题,只谈网站搜索的产品设计问题。

  其实网站上的搜索技术问题已经很好的解决了。开源免费的ElasticSearch,国内也有很多SaaS形式的搜索解决方案,比如Kara搜索,一行代码就可以部署现场搜索,非常方便。在搜索技术不是大问题的前提下,剩下的竞争就是产品策略和产品设计。接下来,我们从产品设计层面谈谈如何优化搜索排序。

  这种算法的问题在于,它只能针对极少数场景设计,不适用于网站、小程序和互联网上的应用程序中的信息搜索。这种搜索不管是什么类型,都会把所有的文档混在一起,而我们当前的数据信息中收录了很大的纬度,甚至还收录了一些用户行为投票的社会指标,比如(查看、点赞、转发)数量等)。

  如何利用多维数据提高搜索准确率是我们不得不思考的问题。

  在上一篇文章中,我们提到了TF-IDF搜索算法的原理,那么接下来应该添加哪些元素来让搜索引擎的排名精度进一步提升呢?我们网站/小程序/APP中的文档信息其实并不是混在一起的,而是收录了很多纬度信息,甚至有些纬度是用户行为引起的对文档质量的投票,比如浏览量、浏览量点赞数、转发数、采集数等。如何利用如此丰富的多维信息来帮助我们优化搜索?

  一般来说,我们可以将站点中的文档信息划分为这样几个纬度。

  搜索属性:标题、正文、标签、文章描述、图片描述、评论内容等,这些属性可以作为搜索的基本属性放入我们的站点搜索中。人气指标:点赞、转发、评论、评论点赞、采集和关注是由用户行为产生的热门指标。这些指标可以帮助我们判断文档内容的质量。站长政策:作为管理员,有时会根据您网站的情况进行一些手动调整。您可以调整这些内容在搜索结果中的排名权重。

  让我们举个例子。假设用户最近看了威尔史密斯的经典电影《当幸福敲门》并且非常喜欢。第二天打算去豆瓣看影评,可是昨天的“幸福”是什么?用户只记得电影名字里有幸福,于是在豆瓣电影的搜索框中输入“幸福”。

  请考虑用户此时的心理状态。他当然不在乎有多少电影标题收录“幸福”这个词(TF词频),当然也不在乎“幸福”这个词是否是电影名称中的常用词(逆文档频率IDF)。

  这位用户更关心的是如何快速准确地找到自己昨天看过的名为《幸福》的电影,快速观看影评。

  这时候,我们的搜索引擎应该在联想词列表中排名第一的是什么?

  

  《当幸福敲门》中的“幸福”二字虽然在属性上并不是第一,但因为片名本身的权重就高。

  在这个场景的搜索中,“幸福”这个词有很多属性可以被我们的搜索引擎用来做排名判断。

  对以上属性进行数值加权后,“当幸福来敲门”排在搜索结果顶部的可能性肯定比使用TF-IDF排名算法找到“幸福来敲门”的可能性要大得多。

  因此,我们应该在排名结果中考虑到网站业务的各种属性,并根据不同属性的重要性设计权重。我们可以从以下几个方面考虑排序问题。

  

  豆瓣电影输入“史密斯”,前三位是电影,后三位是制片人。这是一种基于产品业务权重的搜索排名策略。

  将这些排序策略加入站内搜索后,与经典的搜索算法排序相比,在搜索准确率上有了非常大的飞跃。那么,我们如何继续提高分拣质量呢?

  接下来,我们来谈谈如何灵活运用这些搜索策略,进一步提升搜索排名结果。

  四、如何通过调整数据属性的排序来优化搜索结果

  目前网站上的搜索解决方案,搜索结果准确率低的原因,不在于搜索算法的问题。因为不管网站/APP有多大,再复杂的情况,规则也可以穷尽。与搜索全网的难度相比,难度低了无数个数量级。

  那么问题是什么?问题在于缺乏灵活性或难以灵活使用搜索策略。

  如果我们使用ElasticSearch来构建站内搜索,其实从“构建”到“可用”其实很简单,但是从“可用”到“可用”,需要几个工程师+无数小时的积累。这不是普通中小企业能够承受的成本。大多数中小型公司都会停留在可以使用的状态。

  特别是,基本搜索算法选择使用大浮点分数将所有内容混合在一起。根据所有规则对每个文档进行加权以获得分数。然后按照这个规则排序。这个方法有个致命的问题,就是把不一样的属性混在一起谈排序。

  例如。假设排序方案包括两个纬度:TF-IDF和点赞数。所以问题是,我们的搜索引擎将如何对其进行排序?

  如果一个文档的点赞数非常高,它将如何排序?这个文档会排名很高,即使文档与搜索词的相关性很低,它也会排名很高。

  那么如果一个文档与搜索词非常相关,但喜欢的数量为0,它将如何排序?这个有0个赞的文章可能不会出现在排序结果中。

  这种混合搜索排序方法的另一个问题是它的复杂性。当多个纬度的属性混在一个公式中时,发现搜索结果不好,不知道如何调整。

  那么,面对这个多纬度搜索问题,我们应该如何设计搜索顺序呢?

  聪明的方法是拆解所有属性并为您自己的业务调整它们的顺序。它不是将所有属性混合在一起计算一个大分数,而是计算 N 个分数并执行 N 个连续排序。

  接下来,让我谈谈它是如何工作的。

  所有匹配结果都按照第一个标准进行排序。如果分数并列,则分数将根据第二个标准进行计算和排序。如果仍然存在联系,则继续执行第三个标准,直到每个搜索结果都有自己的位置。

  那么在这个过程中先用哪个标准来判断就成为了这个排序方案的关键。

  来个案例,你就明白了。

  [

  {

  "Title": "为什么《海肯帝国3》IDBM不到7分?",

  “精选”:真实,

  “Number_of_likes”:2647

  },

  {

  "Title": "在《黑客帝国》中,尼奥为什么最后赢了?",

  “精选”:假,

  “Number_of_likes”:3077

  },

  {

  《标题》:“还好当时小丽子不许演《黑客帝国》”,

  “精选”:假,

  “Number_of_likes”:531

  },

  {

  《标题》:《多年后,我真的了解黑色帝国》,

  “精选”:假,

  “Number_of_likes”:797

  },

  {

  "Title": "如何理解《黑客帝国》?",

  “精选”:真实,

  “Number_of_likes”:611

  }

  ]

  为了简化示例,我们将规则简化为三点,错别字、细化和点赞数。

  用户输入“黑客帝国”关键词进行查询,会得到如下结果。

  如何理解“黑客帝国”?(无错别字;精致;点赞:611) 在《黑客帝国》中,为什么Neo最后赢了?(无错别字;没有*敏*感*词*;赞:3077) 为什么是《海肯帝国3》 IDBM不到7分?(2个错别字;已添加;点赞数:2647)幸好小李子不许玩《黑客帝国》(无错别字;未添加;点赞数:531)多年后,我才真正了解黑色帝国(1个错字;不精致;点赞数:797)

  给精华更多的重量。精华一般由网站管理员手动添加,由管理员根据当前情况判断。这种本质标记通常应该大于用户投票行为的指标(例如点赞数)。

  错别字是判断文档重要性的自由度。如果文档有错别字,则有一定概率是文档质量有问题,在排名中应该降低权重。

  我们把用户投票行为放在关键词相关性之后(有时候点赞数甚至不可信。在搜索引擎上作弊首先想到的就是点赞数。因此搜索引擎可以自定义更多的判别属性)关键是他在细节上能否做到足够准确,有机会单独谈谈这个问题)。

  以上就是本案的策略。如果我们对这个例子的排名结果不满意怎么办?只需要调整属性权重(顺序)。比如我们认为错别字没有什么问题,权力不应该减少太多。那么我们只需要把“typos”这个属性放在后面。

  

  国内网站搜索解决方案“卡拉搜索”策略设置在后台,只需鼠标拖动即可更改属性权重。

  五、站内搜索优化总结

  对于媒体内容网站、电子商务、SaaS服务等B端企业来说,增加“网站搜索”功能帮助用户快速找到自己想要的内容是为了提升用户体验,降低跳出率,提升用户转化率. 好主意。

  另一方面,网站搜索也是帮助B端企业快速采集用户真实想法的好工具。用户每次搜索和点击,都是对其网站内容的反馈,尤其是没有结果的搜索词。它也是帮助我们改进网站的重要第一手信息。

  设置“站点内搜索”其实很简单。网站上比较好的国产搜索SaaS,只需要一行代码就可以部署。我会在下一篇文章文章中讲解如何在站点上快速部署搜索。有问题请留言,下篇一一解答。

  本文由@卡拉先生原创发布,大家都是产品经理,未经许可禁止转载。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线