SAP Commerce Cloud 里的 Solr 架构简介

简介: SAP Commerce Cloud 里的 Solr 架构简介

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


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


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


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


ed5bd94f600eacac273ac1e0ad50c67e.png


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 种索引策略

全索引

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 数据始终保持一致。

相关文章
|
2月前
|
Cloud Native
云原生架构之X无限延伸:跨AZ、跨Region、跨Cloud,一文让你彻底解锁!
【8月更文挑战第25天】在云原生架构中,可扩展性至关重要,它确保了应用能按需高效调整资源。本文聚焦于三种扩展策略:跨AZ、跨Region及跨云扩展。跨AZ扩展通过在同一云内部不同可用区间部署应用副本增强容错性;跨Region扩展则通过不同地理区域的应用副本部署提升全球访问性能与可靠性;而跨云扩展则利用多云环境进一步加强应用的弹性和覆盖范围。文中提供了基于AWS CloudFormation的具体实践示例,帮助读者深入理解这些扩展机制的实际应用。
59 2
|
3月前
|
消息中间件 Java 开发者
Spring Cloud微服务框架:构建高可用、分布式系统的现代架构
Spring Cloud是一个开源的微服务框架,旨在帮助开发者快速构建在分布式系统环境中运行的服务。它提供了一系列工具,用于在分布式系统中配置、服务发现、断路器、智能路由、微代理、控制总线、一次性令牌、全局锁、领导选举、分布式会话、集群状态等领域的支持。
152 5
|
4月前
|
负载均衡 Java 开发者
Spring Cloud微服务架构中的配置管理与服务发现
Spring Cloud微服务架构中的配置管理与服务发现
|
4月前
|
负载均衡 Java 开发者
细解微服务架构实践:如何使用Spring Cloud进行Java微服务治理
【6月更文挑战第30天】Spring Cloud是Java微服务治理明星框架,整合Eureka(服务发现)、Ribbon(客户端负载均衡)、Hystrix(断路器)、Zuul(API网关)和Config Server(配置中心),提供完整服务治理解决方案。通过Eureka实现服务注册与发现,Ribbon进行负载均衡,Hystrix确保服务容错,Config Server集中管理配置,Zuul则作为API入口统一处理请求。理解和使用Spring Cloud是现代Java开发者的关键技能。
125 2
|
4月前
|
监控 Java Sentinel
Spring Cloud微服务架构
Spring Cloud微服务架构
59 1
|
3月前
|
负载均衡 Java 开发者
Spring Cloud微服务架构中的配置管理与服务发现
Spring Cloud微服务架构中的配置管理与服务发现
|
3月前
|
负载均衡 Java 开发者
细解微服务架构实践:如何使用Spring Cloud进行Java微服务治理
【7月更文挑战第1天】Spring Cloud是Java微服务治理明星框架,整合Eureka(服务发现)、Ribbon(客户端负载均衡)、Hystrix(熔断器)、Zuul(API网关)和Config Server(配置中心),提供完整服务治理解决方案。通过Eureka实现服务注册与发现,Ribbon进行客户端负载均衡,Hystrix确保服务容错,Config Server集中管理配置,Zuul作为API网关简化系统复杂性。理解和使用Spring Cloud是现代Java开发者的关键技能。
88 0
|
4月前
|
存储 消息中间件 数据库
分布式系统详解--架构简介(微服务)
分布式系统详解--架构简介(微服务)
62 0
|
5月前
|
前端开发 搜索推荐 开发者
SAP UI5 sap.m.Column 控件的 minScreenWidth 属性介绍
SAP UI5 sap.m.Column 控件的 minScreenWidth 属性介绍
|
5月前
|
JavaScript 前端开发 开发者
SAP UI5 控件 sap.m.ListBase 的 inset 属性的作用介绍
SAP UI5 控件 sap.m.ListBase 的 inset 属性的作用介绍
下一篇
无影云桌面