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 種索引策略
- 全索引
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的原創文章,盡在:"汪子熙":