1. 程式人生 > 其它 >SAP Commerce Cloud 裡的 Solr 架構簡介

SAP Commerce Cloud 裡的 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 資料始終保持一致。

更多Jerry的原創文章,盡在:"汪子熙":