Hybris电商平台搜索服务实践

本文探讨了基于Hybris的电商平台如何利用Solr构建高效的搜索服务,包括架构设计、商品数据过滤、Solr添加方案、查询语句设计以及平台化查询接口。通过Master-Slave架构实现高可用和可扩展性,商品数据过滤优化查询效率,结合业务需求设计数据同步和查询策略,提升用户体验。
摘要由CSDN通过智能技术生成

电商平台搜索服务特点

随着电商平台的快速发展和所销售商品的数量大规模增长,从大量的商品数据中快速获取用户关注的商品,变得越来越有挑战性。优秀电商平台能够吸引客户的因素之一,就是拥有强大,友好的搜索服务,用户能够从大量数据中快速找到想要的商品。

这里写图片描述

图1-1 搜索功能演示

搜索引擎需要解决如下问题:

  • 相关的商品能不能在一秒甚至更短的时间返回
  • 对用户输入的关键字进行错误检查
  • 当用户输入关键字的时候,给予一些关键字的建议
  • 返回包含与关键字匹配的同义词的商品
  • 对一些匹配度高但没有实际意义的词进行过滤,比如“a”,“an”,“of”等
  • 根据相关度进行排序

目前搜索的开源方案已经非常成熟,针对以上问题都有相应的解决方案,最出名的Solr和Elastic Search都是基于Lucence的。 Hybris电商平台使用Solr作为自己内嵌的搜索解决方案。本文将以一个B2C家用电器垂直电商为业务背景,基于Hybris平台,讨论如何使用Solr的特征定制出强大的搜索方案,进一步提升用户的搜索体验。需要注意的是,Hybris平台对Solr做了一系列的封装,本文不会对Solr具体的API展开讨论,有兴趣的读者可以查阅Solr官网

基于Hybris的搜索服务体系架构

Hybris电商平台一般将商品数据存储到关系型数据库如MySql,Oracle中,而Solr是一个NoSQL的搜索技术,要使用Solr,就是要把关系数据库中的商品数据,转换成Solr支持的NoSQL结构的Document,添加到Solr中去,并创建索引。

架构设计面临的挑战

结合垂直电商的业务特点,在Hybris中使用Solr实现搜索服务会面临以下挑战。

1. 基础架构设计

一个完整的Hybris电商平台由多个不同角色的服务器组成。比如提供页面的web 服务器,后台用户使用的Backoffice服务器,提供搜索服务的Solr服务器,执行后台定时任务的Job服务器等。应该考虑如何将Solr服务器与其他服务器组织到一起,提供高可用,可扩展的搜索解决方案。

2. 数据过滤

家电行业电商中一般销售的商品有实体电器如冰箱,洗衣机,电器配件如安装螺丝,天然气管,虚拟商品如安装服务,延保服务等。应该考虑哪些商品,商品的哪些属性需要添加到Solr中去,那些商品和属性不需要添加到Solr中去。从而减少文档数量和大小,提高查询效率。

3. 添加数据到Solr的方案

电商平台数据库中的商品数据,经常会有更新。应该考虑一种健壮的数据同步方案,用来处理全量数据和更新数据从关系数据库到Solr服务器的迁移。

4. 平台化统一接口

Solr提供类似REST 风格的API,但作为一个电商平台,应该根据自身业务对Solr的接口进行进一步封装,从而提供一些针对自身特定业务的API接口。

下文将对这些挑战一一进行讨论并给出解决方案。

基础架构设计

Solr支持Master-Slave和SolrCould模式。Master-Slave模式的优点在于配置简单,易于维护。针对数据量和访问量不是特别大的垂直电商,非常适用。如果访问压力过大,通过简单的添加Slave节点即可缓解。然而,当数据量到了一定程度,单台服务器的访问速度会急速下降。如果Master节点宕机,更新数据的索引操作会失败,只能由Slave节点继续提供查询服务。产品量巨大,对搜索性能和高可用性要求更高的场景,建议使用Solr Cloud的方式搭建服务器。

笔者所在的项目是一个销售家用电器的垂直电商网站,商品数量有两万多个,需要存到Solr中的小于一万个,所以选择使用Master-Slave模式来提供搜索服务。Master节点只负责商品的添加和索引,通过Hybris定时任务服务器从关系数据库读取商品数据, 添加到Master节点中去。多个Slave节点用来提供查询服务, 定时从Master节点复制数据, 每个Slave节点的数据是一致的。并在Solr API 的基础上,根据电商业务对Solr API进行封装,提供统一的调用接口,通过Hybris Web服务器来提供搜索服务。具体架构见图2-1。

这里写图片描述

图2-1 Master-Slave 模式的部署方案

搭建Master-Slave模式,需要分别在Master节点和所有Sl

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值