出家如初,成佛有余

电子商务网站“站内搜索”实现思考

Posted in Uncategorized by chuanliang on 2009/02/12

对于电子商务网站而言,随着业务的扩张,产品种类越来越繁多、功能也越来越多,于是乎站点越来越大、越来复杂。简单的产品分类导航(标签导航)方式已经无法满足用户快速获取想要产品的基本需求。于是乎基本上所有的电子商务网站都提供了站内搜索的功能。但现实情况是,大部分电子商务网站的站内搜索基本上都很难使用或不可用,只能起个充当门面的作用。电子商务网站的站内搜索如果没有得到很好的设计、实现和优化,将会导致很多访客在搜索未果后就离开了网站,可以说电子商务网站站内搜索结果的质量关系到网上销售的效果。

1、站内搜索的定义

什么叫站内搜索呢?似乎目前尚未有一个较为权威的定义。我们这里姑且以不准确的理想化方式来定义“站内搜索”为:

充分利用搜索引擎技术及个性化推荐等其他相关技术,结合各网站实际的业务需求来完成对站点各种资源的搜索并以恰当的方式呈现给用户。

首先强调一下我们的定义的理想的站内搜索的几个重点:

  • 搜索引擎及个性化推荐等其他相关技术:不单纯只是搜索引擎搜索,而且利用了数据挖掘、协同过滤等技术(是否需要引入个性化推荐技术),当然搜索引擎实际也用了诸如数据挖掘的相似度算法等技术。
  • 结合网站实际的业务需求:站内搜索必须结合电子商务网站自己实际的业务模式来实现,没有最优的实现方式,只有最适合自己的实现方式。
  • 站点各种资源:包括产品、用户、sns社区、论坛等资源,而不只是网页。
  • 搜索:是搜索,而不是数据库查询,也不是全文检索。
  • 搜索结果展现形式:只有以恰当的方式呈现给用户,搜索结果才有价值。例如在淘宝上简单搜索一下各种产品,经常搜索出上百页的资源,如果不辅助其他的工具(例如分类搜索、相关搜索等)只是将结果全部呈现给用户,那这样的搜索结果对于大部分用户而言基本上不会有较大的参考价值。

再说一下非理想化的“站内搜索”,也即简化版“站内搜索”的定义:

充分利用搜索引擎技术相关技术,结合各网站实际的业务需求来完成对站点内容的搜索并以恰当的方式呈现给用户。

呵呵,简化版与理想化版本的区别是什么呢?就是你理解的站内搜索,问问你自己。

2、站内搜索搜索什么?

  • 产品、资源搜索
  • 会员搜索
  • 产品、资源评论搜索
  • 资讯搜索
  • 标签搜索
  • 类别搜索
  • sns社区搜索
  • 论坛搜索
  • 静态网页内容搜索
  • 其他一些与网站业务有关的搜索
  • 与用户特征及喜好相关的的相关性搜索

由此可见:

站内搜索!=网页搜索

站内搜索!=搜索引擎搜索

3、站内搜索的意义

总体说来,站内搜索之于电子商务网站的意义主要表现在如下方面:

  • 帮助用户快速获取自己想要的产品资源
  • 理解用户意图,改善站点的用户体验。
  • 收集用户喜好,作为推荐系统的输入源之一。
  • 优化网站结构。
  • 跟踪产品冷热热度,优化产品结构。如果用户搜索的结果中,存在大量上架库存中自己没有的产品,那运营人员就需要考虑是否需要上架这样的产品,优化产品的库存结构。
  • 作为Web Analytics的重点分析内容之一:站内搜索的最高关键词、搜索结果的点击密度、退出率、转化率等都应当进行较高优先级进行度量。
  • 作为SEO的策略之一:站内搜索应当作为SEO整体战略的一部分,与诸如Google、Baidu这样的搜索引擎的关键词充分结合。想想,如果用户在Google、Baidu搜索上

4、站内搜索技术实现方案

考虑到理想化版本“站内搜索”实现的复杂度,这里只谈一下电子商务网站的简化版本“站内搜索”技术实现方案,总体上可以分为:

  • 采用Google等搜索引擎来完成站内网页搜索
  • 采用数据库提供的全文检索功能完成站内搜索
  • 采用SQL语句的LIKE来完成站内搜索
  • 基于诸如Lucene等搜索引擎DIY自己的站内搜索

4.1、站内搜索引擎 VS. Google搜索之站内搜索

Google、Baidu、Yahoo等搜索引擎都提供了对指定站点的网站网页搜索功能,站内搜索平台与google, baidu, yahoo提供的网站搜索功能粗略比较如下:
Google, Baidu, yahoo提供的免费站内搜索,不能及时抓取网站网页,搜索结果不一定是最新的。

Google 、Baidu、Yahoo等搜索引擎对结构化的数据处理较差。

Google、Baidu、Yahoo等搜索引擎并不关心电子商务网站的业务模式、业务规则、业务逻辑。

Google、Baidu、Yahoo等搜索引擎的搜索结果不能以相对灵活的、结构化的形式进行展现搜索结果。

Google、Baidu、Yahoo等搜索引擎的爬虫搜索通常只索引网站的部分网页,用户可能会搜索不到结果

建议:如果Google、Baidu这样的搜索引擎已经能够满足自己业务模式的需要,那就采用这些搜索引擎来实现站内搜索,如果满足不了需要,那就DIY方式来实现站内搜索。

4.2、站内搜索引擎 VS. 数据库全文搜索

目前Mysql、Oracle、SQL Server等数据库都提供了对数据库字段的全文检索功能,基本原理与搜索引擎类似,都有分词->索引->搜索,只不过数据库全文检索的索引文件是存放在数据库表(文件)中。具体实现方式请参考各数据库服务器实现方式。

建议:由于对于电子商务系统而言,首先要保证交易本身对数据库资源的需求,不能让站内搜索影响交易服务器的正常业务,因此站内搜索部署到单独的服务器上,建议采用专门的搜索引擎而不是数据库全文检索。另外从高性能角度考虑,数据库资源比应用服务器资源更加宝贵,后续系统的瓶颈基本上在数据库服务器上,应用服务器可以通过负载均衡等方式来进行水平或垂直扩容,而数据库系统在扩容上就相对麻烦对了。

4.3、站内搜索引擎 VS. 数据库查询

目前很多电子商务网站所谓的站内搜索实际上都是使用的SQL语句的like来完成的,对大数据量的模糊查询很容易造成交易数据库服务器性能激剧下降,此种站内搜索的实现方式性能是最差的。

建议:不要依赖此种机制来实现站内搜索。

4.4、站内搜索引擎 VS. 全文检索

正如前面强调的,站内搜索!=网页搜索。只不过对于一些以消费化媒体导向的电子商务资讯网站而言(电子商务网站商业模式之网络消费媒体导向 VS. 产品销售导向 ),有很多是网站实际上都是CMS系统生成的静态网页,因此这些站点的站内搜索实际上就是对网页的搜索。此种模式的电子商务站点倒是可以直接使用Google等搜索引擎来完成站内网页内容的搜索。当然也可以基于Lucene这样的搜索引擎来DIY自己的站内搜索(推荐使用Solr这样的一体化平台来做,参考《企业级搜索引擎Solr交流》 )。

尽管从开发实现的方便上,我们将站内搜索从理想化模式降低为简化版模式,但我们肯定不能降低对自己商业模式的追求和探索,一个电子商务网站的核心模式肯定不能只是建立在网页搜索上,怎样通过站内搜索来获取运营产品、运营客户所需的资源,怎样与站内搜索自己的业务模式无缝结合起来,这是在考虑站内搜索时候都需要考虑的问题。

5、站内搜索的一些重点考虑方向

  • 站内搜索与Web Analytics策略的结合
  • 相关性搜索:包括资源相关性搜索和用户相关性搜索(与推荐系统结合)
  • 站内搜索的SEO策略

关于这些内容,尤其是与Web Analytics及SEO的结合,有空再继续考虑。

发表评论

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 更改 )

Twitter picture

You are commenting using your Twitter account. Log Out / 更改 )

Facebook photo

You are commenting using your Facebook account. Log Out / 更改 )

Google+ photo

You are commenting using your Google+ account. Log Out / 更改 )

Connecting to %s

%d 博主赞过: