SAP Commerce Cloud 里的 Solr 架构简介

举报
Jerry Wang 发表于 2022/09/12 11:25:36 2022/09/12
【摘要】 大多数电子商务网站都在其网站上提供搜索功能,尤其是用于搜索产品详细信息。产品是任何电子商务网站中的主要搜索数据。由于 Hybris 用于开发电子商务网站,因此 Hybris 中的 Solr 用于更快地搜索网站中的产品。请看下图,了解如何在 Hybris 中使用 Solr: Hybris 中的 Solr 概述每当用户访问店面中的任何数据时,它可以来自hybris DB或Solr,具体取决于该数...

大多数电子商务网站都在其网站上提供搜索功能,尤其是用于搜索产品详细信息。

产品是任何电子商务网站中的主要搜索数据。

由于 Hybris 用于开发电子商务网站,因此 Hybris 中的 Solr 用于更快地搜索网站中的产品。

请看下图,了解如何在 Hybris 中使用 Solr:

Hybris 中的 Solr 概述

每当用户访问店面中的任何数据时,它可以来自hybris DB或Solr,具体取决于该数据是否已编入索引。

如果数据被索引,它将单独存储在 Solr 中,并且可以从那里访问。

如果数据未编入索引,则无论如何它都可以在Hybris DB 中使用并且可以从那里访问。

Solr和Hybris DB之间的通信是一种方式,因为Solr只从Hybris DB获取数据,但不会将任何内容写回Hybris DB。

Hybris 调用Cron 作业进行索引,然后 Solr 从 Hybris DB 获取源数据,然后进行索引并将索引数据保存在其中。

请记住:由于Solr 中的索引数据,
从Hybris DB访问数据将比从Solr访问数据花费更多的时间,因此Solr在搜索中比 Hybris DB 更受欢迎。

hybris 中的 Solr 支持 3 种索引策略

  1. 全索引

2)更新索引

  1. 删除索引

  2. 全索引:

在此策略中,将首先删除所有现有索引文档,然后从头开始创建新索引。
这需要相当长的时间,所以不建议经常这样做。

完整索引支持 2 种提交模式

a) 直接模式
在此模式下,如果索引失败,则先前提交的文档将可用。

b) 两阶段模式
在这种模式下,如果索引失败,一切都会回滚到初始状态。

在这种模式下,Solr 创建一个额外的核心作为临时核心,仅用于索引,一旦索引成功,它将与原始核心交换。
因此,如果索引失败,原始核心将是安全的。

之所以称为两阶段模式,主要是因为它在索引时涉及2 个 Solr 内核。

初始核心作为备份保留,另一个核心作为副本创建,
将在此副本上执行索引,如果索引成功,稍后将与原始核心交换。

2)更新索引:
在这个策略中,只有那些在给定时间内被修改的文档才会被索引,其他被索引的文档保持原样。如果需要, 可以经常执行此操作,因为与完整索引策略相比,它消耗的时间更少

3)删除索引:

此策略用于完全删除索引文档。
应该定期执行此操作以保持索引数据的一致性,因为我们可能在 Solr 中长期存在不需要的索引数据。

众所周知,通过impex 执行是最好的方法,因为它可以在所有环境(DEV、TEST、PROD)中持续很长时间并且可重用,
我们只需要相应地在impex文件中定义Solr 配置即可。

产品项目类型的索引已由 Hybris 开箱即用。
因此,如果我们向Product项目类型添加任何新属性,并且我们希望对这些新属性进行索引,那么我们需要在solr impex文件中添加这些新属性。

我们可以在solr impex文件中定义查询以从hybris DB获取数据以进行索引,我们还需要在Solr impex文件中定义字段描述。

Hybris 的优点在于,它已经提供了用于执行完整索引、更新索引和删除索引的cron 作业。

我们在 SAP Hybris Backoffice 里查看每个 site 对应的 index:

每种索引可以分配 catalog,货币和语言:

索引类型:

其中 update cronjob 被调度成每隔 1 分钟执行一次,以确保 index 和 DB 数据始终保持一致。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。