業務模組資料與搜尋引擎索引資料同步的問題

2021-08-30 02:52:52 字數 751 閱讀 7629

上兩周,我在搭建裝修相簿的索引庫的時候,發現了乙個潛在的問題,之前是沒有考慮到的。

那就是「業務模組資料與搜尋引擎索引資料同步的問題」:

》搜尋引擎索引庫的資料時增量的,即更新業務模組每天變更的資料。從索引時間和系統資源佔用率分析,每天全部重新索引一遍是不可能的。

》業務模組的資料變動,搜尋引擎需要有辦法知道。

目前我們的實現方式是依靠業務模組資料表的「更新時間」字段。但這樣做有很大的侷限性,搜尋引擎對業務模組的依賴性太強,耦合太緊。

我分析了一下,有以下幾種解決方案:

1、依賴業務模組資料庫表的「更新時間」字段。(我們目前使用的方式)

缺點》要求資料庫表必須有「更新時間」字段,業務模組必須保證程式沒有bug,有任何變動時,都得確保對「更新時間」欄位有修改。

2、利用操作日誌

目前我們後台錄入系統有操作日誌表,每個業務操作和變更,都要呼叫操作日誌程式介面,記錄入庫。

缺點:》必須要求業務模組都正確呼叫操作日誌介面。

3、利用觸發器

對業務模組相關表都加觸發器,資料有變動時,觸發器將變動資料插入到日誌記錄表

缺點:》對業務模組所有相關表都需要加,維護起來也比較費勁

4、解析資料庫日誌變更日誌。

mysql會將所有的資料變更記錄到日誌中。如果這種方式可行,那麼搜尋引擎和業務模組將沒有耦合。

對於第4種方法,目前我還沒有對技術可行性做全面的測試和分析,請各位幫忙分析一下第4中方法的可行性。或者大家有更好的辦法。目前這個問題比較棘手,希望大家多多幫忙!

搜尋引擎 索引

正排索引 文件編號,單詞編號,單詞的數量,單詞出現的位置。倒排索引 1,單詞詞典,儲存單詞以及統計資訊,單詞在記錄表中的便宜,可常駐記憶體,用雜湊表儲存。2,記錄表,單詞對應的文件集合,記錄單詞出現的數目 位置。文件採用差分變長編碼。其中文件可按編號公升序排列 可利用差分編碼 也可按出現次數排列,可...

搜尋引擎 倒排索引

本節通過引入簡單例項,介紹與搜尋引擎索引有關的一些基礎概念,了解這些基礎概念對於後續深入了解索引的工作機制非常重要。3.1.1單詞 文件矩陣 單詞 文件矩陣是表達兩者之間所具有的一種包含關係的概念模型,圖3 1展示了其含義。圖3 1的每列代表乙個文件,每行代表乙個單詞,打對勾的位置代表包含關係。圖3...

搜尋引擎 倒排索引

倒排索引基本概念示意圖 假設文件集合包含五個文件,每個文件內容如圖3 3所示,在圖中最左端一欄是每個文件對應的文件編號。我們的任務就是對這個文件集合建立倒排索引。文件集合 需要對每個單詞賦予唯一的單詞編號,同時記錄哪些文當包含這些單詞,如下就是乙個簡單的索引,單詞id記錄了每個單詞的單詞編號,第二欄...