搜索引擎进行信息检索的优化策略方法(如何快速搭建起一个高质量站内搜索引擎呢?(组图))
优采云 发布时间: 2022-04-19 00:07搜索引擎进行信息检索的优化策略方法(如何快速搭建起一个高质量站内搜索引擎呢?(组图))
一、网站搜索的意义
对于媒体内容站、电商、SaaS服务等B端企业来说,加入“站内搜索”功能,帮助用户快速找到自己想要的内容,是提升用户体验、减少弹跳的最佳方式率,并提高用户转化率。好主意。
另一方面,站内搜索也是帮助B端企业快速采集用户真实想法的好工具。每次用户搜索和点击,都是对他们网站内容的反馈,尤其是对于没有结果的搜索词。这是帮助我们改进网站的重要第一手资料。
那么如何快速搭建一个高质量的站内搜索引擎呢?接下来我会写一系列文章来详细讲解本站搜索的方方面面,欢迎大家继续关注。
今天,我们从产品层面谈谈如何优化搜索排名结果。
二、从搜索算法开始
要深入了解搜索,请从搜索引擎的起源开始。任何复杂的系统都是从一个简单的系统开始,逐渐演化而来的。从一开始就设计一个复杂的系统很难让它很好地工作。所以我们必须回到源头,从源头上讲理解搜索。
1990 年代,TREC(全球文本检索会议)组织了一系列年度研讨会。本次研讨会的主要目的是寻找由“非结构化长文档”组成的数据集的最佳搜索算法。TREC对搜索引擎算法做了很多优化,其中TF-IDF算法应该是当时最好的排序算法的主要组成部分。
TF-IDF算法,就像它的名字一样,收录两个关键元素,“词频TF”和“逆文档频率IDF”。对这两个元素进行统计加权后得到搜索排名。
词频(TF,词频)
词频TF是指“搜索词”在文档中出现的频率。
逆文档频率(IDF,逆文档频率)
逆文档频率IDF是指“搜索词”在整个语料库中出现的频率。
当用户输入“搜索词”时,它首先会比较整个文档库中哪些文档收录最多的“搜索词”。收录的越多,文档的排名就越高。
这个简单的规则有一个致命的问题,在我们的语言中有太多的连词、代词、助词等等只是用来辅助句子表达的词。比如“?”、“also”、“this”、“but”等词,这些词不是文档的核心内容,应该减少权重。
至此,我们介绍第二个关键元素——逆文档频率 IDF。它的作用是降低语料库中频繁出现的词的权重。一个词在语料库中重复的次数越多,收录这个“搜索词”的文档的排名就越低。
TF-IDF的设计是不是简单巧妙?TF-IDF排序算法和BM25等类似算法基本上是古代搜索引擎的核心查询和排序算法。这类算法主要是针对非结构化的长文本设计的,比如大型企业文档、过去判断文档、全球论文检索数据库等。
此类算法是搜索引擎的基石,对其原理的深入了解将有助于我们设计自己的站内搜索。接下来说说独立网站、小程序、APP中如何设计和处理搜索问题。
三、如何通过数据属性优化排序结果
今天不谈搜索技术问题,只谈站内搜索的产品设计问题。事实上,现场搜索技术的问题已经很好地解决了。有开源免费的ElasticSearch,国内有很多SaaS形式的现场搜索解决方案。比如卡拉搜索,一行代码就可以部署站内搜索,非常方便。在搜索技术不是大问题的前提下,剩下的就是产品策略和产品设计了。接下来,我们从产品设计层面来谈谈如何优化搜索排名。
这个算法的问题是只能针对极少数场景设计,不适合当前互联网网站、小程序、APP中的信息搜索。这种搜索会不分类型地混淆所有文档,而我们当前的数据信息收录了很大的纬度,甚至收录了一些用户行为投票的社会指标,比如(浏览量、点赞量、转发量)数等.)。
如何利用多维数据提高搜索准确率是我们需要思考的问题。
前面我们提到了TF-IDF搜索算法的原理,那么接下来应该添加哪些元素才能让搜索引擎排名更准确呢?我们的网站/小程序/app中的文档信息实际上并不是混在一起的,而是收录了很多纬度信息,甚至有些纬度是用户行为产生的对文档质量的投票,比如浏览量、点赞量、转发、采集等。如何利用这么多丰富的多维信息来帮助我们优化搜索?
一般来说,我们可以将站点中的文档信息划分为几个纬度。
让我们举个例子。假设用户最近观看了威尔史密斯的经典电影《幸福来敲门》并喜欢它。第二天本来打算去豆瓣看影评,昨天看了《幸福》。它是什么?用户只记得片名中有幸福,于是在豆瓣电影的搜索框中输入了“幸福”。
请考虑一下用户此时的心理状态。他当然不在乎有多少电影标题收录“幸福”这个词(TF 词频),他当然也不在乎“幸福”这个词是否是电影标题中的常见词(逆文档频率 IDF)。
用户更关心的是如何快速准确地找到自己昨天看的电影《幸福》,快速阅读影评。
这个时候,我们的搜索引擎应该在联想词列表中排名第一的是什么?
虽然“幸福来敲门”这个词在属性中并不是第一名,但因为片名本身的权重很高,所以排在了第一位。
在这个场景的搜索中,“幸福”这个词有很多属性,我们的搜索引擎可以利用这些属性来进行排名判断。
对以上属性进行数值加权后,“幸福时敲门”排在搜索结果首位的可能性肯定比使用TF-IDF排序算法找到“幸福时敲门”的可能性要大得多。
因此,我们应该在排序结果中考虑网站业务的各种属性,并根据不同属性的重要性设计权重。我们可以从以下几个方面考虑排序问题。
豆瓣电影输入“史密斯”,前三个是电影,后三个是电影人。这是一种基于产品业务权重的搜索排名策略。
在现场搜索中加入这些排序策略后,与经典搜索算法排序相比,搜索准确率有了很大的飞跃。那么如何才能不断提高分拣质量呢?
接下来,我们来谈谈如何灵活运用这些搜索策略,进一步提升搜索排名结果。
五、如何通过调整数据属性的排序来优化搜索结果
目前各种站内搜索方案中搜索结果准确率低的原因不是搜索算法,因为无论网站/app多大,情况再复杂,规则都可以穷尽。与搜索全网的难度相比,难度要低很多数量级。那么问题出在哪里?问题在于灵活使用搜索策略没有或有困难。如果我们使用 ElasticSearch 在网站上进行搜索,从“构建”到“可用”其实很简单,但是从“可用”到“好用”需要几个工程师 + 无数小时的积累。这不是普通中小型企业能够承受的成本,
特别是,基本搜索算法选择使用较大的浮点分数,将所有内容混合在一起。根据所有规则对每个文档进行评分。然后按照这个规则排序。这种方法有个致命的问题,就是把不一样的属性混在一起讲排序。
例如。假设排序方案包括TF-IDF和点赞数两个维度。所以问题是,我们的搜索引擎将如何排名?
如果一个文档有非常多的点赞数,它将如何排序?即使该文档与搜索词的相关性非常低,该文档的排名也会非常高。
那么如果一篇文档与搜索词相关度高,但点赞数为0,那么如何排序呢?这个 0 赞的 文章 可能不会出现在排名结果中。
这种混合搜索排名方法的另一个问题是它的复杂性。当多个纬度属性混合在一个公式中时,我们发现搜索结果很糟糕,不知道如何调整。
那么,面对这种多维度的搜索问题,我们应该如何设计搜索排名呢?
明智的方法是将所有属性分开并为您的业务调整它们的顺序。不是将所有属性集中在一起计算一个大的分数,而是计算 N 个分数并进行 N 个连续排序。
接下来我会谈谈它是如何工作的。
所有匹配的结果都按照第一个标准进行排序。如果结果出现平局,将继续按照第二个标准计算和排序分数。如果仍然存在平局,则第三个标准继续进行,直到每个标准在搜索结果中都有自己的位置。
那么在这个过程中先用哪个准则来判断就成为了这个排序方案的关键。
来个案例,你就明白了。
[
{
"title": "为什么《黑肯帝国3》在IDBM才不到7分?",
"featured": true,
"number_of_likes": 2647
},
{
"title": "《黑客帝国》里面,为什么最后是尼欧赢了?",
"featured": false,
"number_of_likes": 3077
},
{
"title": "还好当年没让小李子演《黑客帝国》",
"featured": false,
"number_of_likes": 531
},
{
"title": "多年以后,才真正看懂黑各帝国",
"featured": false,
"number_of_likes": 797
},
{
"title": "如何理解《黑客帝国》?",
"featured": true,
"number_of_likes": 611
}
]
为了简化示例,我们将规则简化为三点,错别字,细化,点赞数。用户输入“矩阵”关键词进行查询,会得到如下结果。
如何理解“黑客帝国”?(无错别字;细化;点赞数:611)《黑客帝国》,Neo为什么最后赢了?(无错字;无细化;点赞数:3077)为什么《黑客帝国3》少于IDBM 7分?(2个错别字;精炼;点赞:2647)还好小李子没被允许玩《黑客帝国》(没有错别字;没有精炼;点赞:531)多年后,我真的懂了黑社会的帝国(1个错字;未精炼;喜欢:797)
以上就是这个案例的策略,如果我们对这个例子的排序结果不满意怎么办?只需调整属性权重(顺序)。比如我们认为错别字没有问题,不应该过多降低权限,所以只需要把“错别字”的属性放在后面即可。
国内站点搜索解决方案“卡拉搜索”策略设置后台,您只需使用鼠标拖动即可更改属性权重。
六、站内搜索优化总结
对于媒体内容站、电商、SaaS服务等B端企业来说,加入“站内搜索”功能,帮助用户快速找到自己想要的内容,是提升用户体验、减少弹跳的最佳方式率,并提高用户转化率。好主意。
另一方面,站内搜索也是帮助B端企业快速采集用户真实想法的好工具。每次用户搜索和点击,都是对他们网站内容的反馈,尤其是对于没有结果的搜索词。这是帮助我们改进网站的重要第一手资料。
构建“站内搜索”实际上非常简单。国内最好的站内搜索SaaS,仅需一行代码即可部署。我将在下一篇文章 文章 中解释如何快速部署站内搜索。欢迎留言提问,下一篇文章将一并解答。