国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種分布式全文檢索的索引實時更新的方法和系統(tǒng)的制作方法

      文檔序號:6580035閱讀:289來源:國知局
      專利名稱:一種分布式全文檢索的索引實時更新的方法和系統(tǒng)的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明屬于搜索引擎信息索引技術(shù)領(lǐng)域,尤其涉及一種分布式全文檢索的索引實時更新的方法和系統(tǒng)。
      背景技術(shù)
      搜索引擎已成為人們查詢和獲取信息的重要手段。越來越多的網(wǎng)站開始使用基于搜索引擎的搜索來取代傳統(tǒng)的數(shù)據(jù)庫搜索。與傳統(tǒng)的數(shù)據(jù)庫查詢方式不同,信息需要先建成索引方能通過搜索引擎檢索得到。搜索引擎具有搜索速度快、搜索準確率高、支持多語言分詞等優(yōu)勢。
      但是,信息的實時更新是搜索引擎的難點。針對這個問題,業(yè)界已
      經(jīng)研究了幾種比較可行的解決方案
      第一,搜索引擎主動輪詢數(shù)據(jù)庫的方式
      搜索引擎在后臺啟動一個輪詢進程或線程,定時的掃描數(shù)據(jù)庫數(shù)據(jù),發(fā)現(xiàn)有更新數(shù)據(jù)時則讀取更新的數(shù)據(jù),再經(jīng)過數(shù)據(jù)處理流程,將數(shù)據(jù)寫入索引。這種方案實現(xiàn)簡單,但具有以下缺點
      (1)數(shù)據(jù)庫需要設(shè)置額外字段標志每一條記錄的狀態(tài)和操作時間,搜索引擎根據(jù)標志和操作時間讀取需要更新的記錄,對索引進行批量的增量更新。
      (2 )被刪除記錄需要在數(shù)據(jù)庫中保存 一段時間才能進行物理刪除,增加了對存儲空間的要求。
      (3) 部署數(shù)據(jù)庫和搜索引擎的服務(wù)器需要進行時間同步,保證其時間的一致性。
      (4) 定時輪詢對數(shù)據(jù)庫系統(tǒng)形成一定壓力。
      第二,搜索引擎提供一個增量更新的服務(wù)接口的方式該方案要求搜索引擎以服務(wù)的方式提供一個更新索引的接口,由數(shù)
      5據(jù)更新系統(tǒng)主動對搜索引擎發(fā)起一個更新請求。服務(wù)接口 一般采用同步 通信方式,因此, 一旦更新請求量比較大,系統(tǒng)性能將明顯下降,無法 支持大批量請求的實時更新。

      發(fā)明內(nèi)容
      本發(fā)明提出一種實時更新索引信息的方法,并以該方法為基礎(chǔ),構(gòu) 建一個具有實時索引的分布式索引信息更新系統(tǒng),4吏得對索引信息的更 新操作能夠?qū)崟r的反映到索引中,可以被前端用戶檢索到更新后的索引 信息。
      根據(jù)本發(fā)明的一個方面,提出分布式全文檢索的索引實時更新的方
      法,包括以下步驟當有索引信息更新時,由信息發(fā)布服務(wù)器向通知服 務(wù)器發(fā)送更新請求,在更新請求中包括索引分類信息的數(shù)據(jù);由通知服 務(wù)器將更新請求分配到對應(yīng)的消息主題隊列中,并將更新請求發(fā)送到訂 閱相應(yīng)消息主題的請求分發(fā)器;每一個消息主題包含多類索引分類,負 責維護所包含的索引分類對應(yīng)的索引更新請求;才艮據(jù)記載有索引分類與 索引服務(wù)器之間關(guān)系的路由信息表,由請求分發(fā)器向與索引分類對應(yīng)的 索引服務(wù)器發(fā)送更新請求;索引服務(wù)器接收請求分發(fā)器發(fā)送的索引更新 請求,或主動向信息發(fā)布服務(wù)器發(fā)起數(shù)據(jù)訪問請求,讀取索引更新信息 和操作類型;對讀取到的索引更新信息按照索引結(jié)構(gòu)進行字段規(guī)范化, 根據(jù)操作類型對規(guī)范化后的索引更新信息進行增量操作。
      進一步,索引分類包括至少如下之一地域、數(shù)據(jù)所屬專業(yè)領(lǐng)域、 索引日期、信息id范圍。
      進一步,建立記載有索引分類與索引服務(wù)器之間關(guān)系的路由信息表 的操作,包括以下步驟每個索引服務(wù)器均在請求分發(fā)器上注冊,在注 冊請求中包括該索引服務(wù)器的索引分類;根據(jù)索引分類與索引服務(wù)器之 間的對應(yīng)關(guān)系建立路由信息表。
      進一步,根據(jù)操作類型對規(guī)范化后的索引更新信息進行增量操作, 包括如下之一當新增索引更新信息時,直接加入內(nèi)存索引;當刪除索 引更新信息時,判斷要刪除的索引更新信息位于內(nèi)存索引還是文件索引,再直接進行刪除;當修改索引更新信息時,判斷索引更新信息位于 內(nèi)存索引還是文件索引,如果位于內(nèi)存索引,刪除原有記錄,再將修改 后的索引更新信息新增到內(nèi)存索引;如果位于文件索引,在內(nèi)存索引中 新增索引更新信息,再從文件索引中刪除該索引更新信息。
      進一步,當內(nèi)存索引到達設(shè)定條件時,將內(nèi)存索引合并到文件索引。
      進一步,還包括在內(nèi)存索引故障時執(zhí)行的容錯控制,包括以下步 驟由容錯模塊將需要恢復(fù)的時間段信息、信息發(fā)布服務(wù)器信息發(fā)送到 索引服務(wù)器,并通知其啟動索引恢復(fù)過程進行內(nèi)存索引恢復(fù)。
      根據(jù)本發(fā)明的另一方面,還提出分布式全文檢索的索引實時更新的 系統(tǒng),包括信息發(fā)布服務(wù)器,當有索引信息更新時,向通知服務(wù)器發(fā) 送更新請求,在更新請求中包括索引分類信息的數(shù)據(jù);通知服務(wù)器,維 護消息主題隊列,在每一個消息主題隊列中包含多類索引分類的索引更 新請求消息,當更新請求消息到達消息主題隊列時,將更新請求消息發(fā) 送到訂閱該主題的請求分發(fā)器;請求分發(fā)器,根據(jù)記載有索引分類與索 引服務(wù)器之間關(guān)系的路由信息表,向與索引分類對應(yīng)的索引服務(wù)器發(fā)送 更新請求;索引服務(wù)器包括數(shù)據(jù)預(yù)處理模塊,接收請求分發(fā)器的索引 更新消息,或主動向信息發(fā)布服務(wù)器發(fā)起數(shù)據(jù)訪問獲得索引更新消息, 解析索引更新信息和操作類型,對讀取到的索引更新信息按照索引結(jié)構(gòu)
      進行字段規(guī)范化,并發(fā)送給索引模塊;索引模塊,根據(jù)操作類型對數(shù)據(jù)
      預(yù)處理模塊處理后的索引更新信息進行增量操作。
      進一步,索引分類包括至少如下之一地域、數(shù)據(jù)所屬專業(yè)領(lǐng)域、 索引日期、信息id范圍。
      進一步,請求分發(fā)器接收索引服務(wù)器發(fā)送的注冊請求,在注冊請求 中包括該索引服務(wù)器的索引分類,才艮據(jù)索引分類與索引服務(wù)器的對應(yīng)關(guān) 系建立路由信息表。
      進一步,索引服務(wù)器執(zhí)行的增量操作包括如下之一當新增索引更
      新信息時,直接加入內(nèi)存索引;當刪除索引更新信息時,判斷要刪除的 索引更新信息位于內(nèi)存索引還是文件索引,再直接進行刪除;當修改索引更新信息時,判斷索引更新信息位于內(nèi)存索引還是文件索引,如果位 于內(nèi)存索引,刪除原有記錄,再將修改后的索引更新信息新增到內(nèi)存索
      引;如果位于文件索引,在內(nèi)存索引中新增索引更新信息,再從文件索 引中刪除該索引更新信息。
      進一步,索引服務(wù)器在內(nèi)存索引到達設(shè)定條件時,將內(nèi)存索引合并 到文件索引。
      進一步,還包括容錯模塊,在內(nèi)存索引發(fā)生故障時,將索引恢復(fù)請 求發(fā)送到索引服務(wù)器的數(shù)據(jù)源主動訪問模塊,索引恢復(fù)請求包括需要恢 復(fù)的時間段信息、信息發(fā)布服務(wù)器信息;數(shù)據(jù)源主動訪問模塊,接收容 錯模塊的索引恢復(fù)請求,向信息發(fā)布服務(wù)器發(fā)起數(shù)據(jù)訪問請求,讀取需 要恢復(fù)的時間段內(nèi)的索引更新信息和操作類型,并發(fā)送給數(shù)據(jù)預(yù)處理模 塊。
      與現(xiàn)有技術(shù)相比,本發(fā)明至少具有如下之一的優(yōu)點和效果 采用通知的方式獲取索引更新信息,實現(xiàn)真正意義上的實時索引更 新,顯著提高前端用戶體驗。
      分布式的索引存儲,支持海量數(shù)據(jù)索引和高效的索引處理。 多重備份結(jié)合主動輪詢的容錯機制,保證系統(tǒng)穩(wěn)定。


      圖l為本發(fā)明分布式全文檢索的索引實時更新的方法流程圖。 圖2為本發(fā)明分布式全文檢索的索引實時更新的系統(tǒng)結(jié)構(gòu)圖。 圖3為本發(fā)明系統(tǒng)中索引服務(wù)器的結(jié)構(gòu)圖。
      具體實施例方式
      本發(fā)明釆用分布式的索引結(jié)構(gòu),通知和輪詢相結(jié)合的數(shù)據(jù)獲取方 式,將對索引的更新操作實時反映到工作索引上,保證前端可以實時檢 索到最新的信息。
      下面將結(jié)合附圖和實施例詳細說明本發(fā)明。
      圖1為本發(fā)明分布式全文檢索的索引實時更新的方法流程圖。該方法具體包括以下步驟
      在步驟101,當有索引信息更新時,由信息發(fā)布服務(wù)器向通知服務(wù) 器發(fā)送更新請求,在更新請求中包括索引分類信息的數(shù)據(jù)。
      發(fā)送更新請求的操作可以是異步消息機制,在信息發(fā)布服務(wù)器和請 求分發(fā)器之間建立一個消息通道,由通知服務(wù)器維護。信息發(fā)布觸發(fā)事 件通知請求分發(fā)器獲取更新信息。例如,在信息發(fā)布服務(wù)器和請求分發(fā) 器之間建立一個JMS消息通道,信息發(fā)布服務(wù)器將信息更新作為一個 訂閱主題(Topic),請求分發(fā)器作為一個消息訂閱者(Subscriber),信 息發(fā)布服務(wù)器將更新操作發(fā)布到Topic上,通過JMS消息通知請求分 發(fā)器讀取更新信息。
      在步驟102,由通知服務(wù)器維護一系列消息主題隊列,每一個消息 主題隊列可包含多類索引分類的索引更新請求消息,當更新請求消息到 達消息主題隊列時,將更新請求消息發(fā)送到訂閱該主題的請求分發(fā)器。
      索引分類可以是如下之一地域、數(shù)據(jù)所屬專業(yè)領(lǐng)域、索引曰期、 信息id范圍等。
      在步驟103,根據(jù)記載有索引分類與索引服務(wù)器之間關(guān)系的路由信 息表,由請求分發(fā)器向與索引分類對應(yīng)的索引服務(wù)器發(fā)送更新請求。
      請求分發(fā)器可以是分布式部署的,可才艮據(jù)其負責的索引分類,訂閱 通知服務(wù)器上對應(yīng)的消息。請求分發(fā)器設(shè)置、安裝索引分類,將更新請 求分類,再分發(fā)到對應(yīng)分類的索引服務(wù)器上。請求分發(fā)器與索引服務(wù)器 之間維持路由信息表。每個索引服務(wù)器均在請求分發(fā)器上注冊,在注冊 請求中包括該索引服務(wù)器的索引分類,由請求分發(fā)器根據(jù)索引分類與索 引服務(wù)器的對應(yīng)關(guān)系生成路由信息表,保證索引更新請求正確的傳遞到 對應(yīng)的索引服務(wù)器。
      路由信息表可設(shè)置在請求分發(fā)器中,也可配置獨立的路由分發(fā)器。 當路由信息表設(shè)置在獨立的路由分發(fā)器中,請求分發(fā)器在接收到更新請 求時,到該路由分發(fā)器中獲取該路由信息表。路由信息可根據(jù)索引分類 生成。例如,可以根據(jù)信息id范圍結(jié)合地域編碼劃分索引的分布,則 路由信息可由信息id范圍和地域編碼構(gòu)成,請求分發(fā)器才艮據(jù)記錄的id 9和地域編碼,查路由信息表取得路由,再訪問對應(yīng)的索引服務(wù)器。路由 信息表支持動態(tài)調(diào)整,保證在不停止原有索引服務(wù)的前提下擴展索引服 務(wù)。
      在步驟104,索引服務(wù)器接收請求分發(fā)器發(fā)送的索引更新請求,解 析并讀取索引更新信息和操作類型。
      索引服務(wù)器可以是分布式部署的,從而索引也是分布式存放的。索 引服務(wù)器可以接收請求分發(fā)器發(fā)送的索引更新請求,也可以主動到信息 發(fā)布服務(wù)器獲取更新信息。例如,信息發(fā)布服務(wù)器可開放數(shù)據(jù)源訪問權(quán) 限,由索引服務(wù)器定時對數(shù)據(jù)庫進行輪詢訪問,讀取數(shù)據(jù)的更新信息。 數(shù)據(jù)源可以是數(shù)據(jù)庫,也可以是如web接口等其他形式提供的數(shù)據(jù)接。
      在步驟105,對讀取到的索引更新信息按照索引結(jié)構(gòu)進行字段規(guī)范 化,根據(jù)操作類型對規(guī)范化后的索引更新信息進行增量操作。
      每一個索引服務(wù)器上保存的索引信息包括內(nèi)存索引和文件索引。索 引采用倒排的數(shù)據(jù)結(jié)構(gòu)。內(nèi)存索引保存最新更新的記錄,文件索引保存 原有信息以及合并的內(nèi)存索引的索引信息。對于索引更新信息,如果是 新增記錄,直接加入內(nèi)存索引。如果是刪除,則判斷記錄位于內(nèi)存索引 還是文件索引,再直接進行刪除。如果是修改,則判斷記錄位于內(nèi)存索 引還是文件索引,若位于內(nèi)存索引,則刪除原有記錄,再將修改后的記 錄新增到內(nèi)存索引;若位于文件索引,則在內(nèi)存索引中新增記錄,再從 文件索引中刪除該記錄。
      內(nèi)存索引在一定條件下將合并到文件索引。合并之后,內(nèi)存索引清 空。合并的條件可以是如下之一索引占用的內(nèi)存空間。當內(nèi)存索引占 用內(nèi)存空間到達系統(tǒng)設(shè)定大小,將內(nèi)存索引合并到文件索引;索引包含 的記錄數(shù)。當內(nèi)存索引包含的記錄數(shù)到達系統(tǒng)設(shè)定最大值,將內(nèi)存索引 合并到文件索引;時間點。當服務(wù)器時間到達系統(tǒng)指定的一個時間點, 將內(nèi)存索引合并到文件索引;系統(tǒng)資源空閑程度。當索引服務(wù)器的資源 使用率,例如CPU使用率、內(nèi)存占用率、IO讀寫量等,低于系統(tǒng)指定 值,將內(nèi)存索引合并到文件索引中。
      10本發(fā)明采用通知的方式獲取索引更新信息,實現(xiàn)真正意義上的分布 式實時索引更新,顯著提高前端用戶體驗。在獲取索引更新信息后,分 布式的存儲索引更新信息,支持海量數(shù)據(jù)索引和高效的索引處理。
      此外,本發(fā)明還可以進一 步包括對多重索引信息進行容錯備份操 作,通過容錯模塊實時監(jiān)控內(nèi)存索引狀態(tài),在內(nèi)存索引出錯時,切換到 備份的索引信息,保證了系統(tǒng)的穩(wěn)定性。還進一步通過主動訪問數(shù)據(jù)源 的方式進行內(nèi)存索引的容錯控制。
      采用多節(jié)點^容錯方式,根據(jù)索引重要程度或檢索頻繁程度等, 進行一對一或者多對一的索引備份。負責*工作的服務(wù)器可單獨為某 一索引服務(wù)器備份即一對一備除,也可以為多個索引服務(wù)器備份即多對 一備份,同一個索引服務(wù)器也可以配備兩臺或多臺服務(wù)器進行熱備份。 視具體工作的索引服務(wù)器的負載而定。
      一旦工作服務(wù)器出現(xiàn)故障,請求 分發(fā)器將請求發(fā)到備份服務(wù)器上,保證請求的正常處理。
      在每個索引服務(wù)器上對索引信息進行容錯*,將正確的在線索引 備份為線下索引, 一旦在線索引損壞,將切換為線下索引。例如,可在
      每一臺索引服務(wù)器存放完全相同的兩份索引,分為線上索引online和線 下索引offline, —般情況下,索引服務(wù)訪問online, —旦索引服務(wù)發(fā)現(xiàn) online無法訪問或出錯,則主動切才灸到offline,將offline指定為 online,保證檢索服務(wù)穩(wěn)定。
      采用輪詢方式實現(xiàn)內(nèi)存索引的容錯操作。容錯模塊記錄初始化內(nèi)存 索引的時間點,檢測內(nèi)存索引的可用性, 一旦發(fā)現(xiàn)內(nèi)存索引有誤,將 online指定為offline,將需要恢復(fù)的時間段信息、信息發(fā)布服務(wù)器信息 發(fā)送到索引服務(wù)器,并通知其啟動索引恢復(fù)過程進行索引恢復(fù)。例如, 每次合并內(nèi)存索引之后,容錯模塊記下時間點,在發(fā)現(xiàn)內(nèi)存索引故障 時,將合并內(nèi)存索引的時間點、故障時間點以及信息發(fā)布服務(wù)器的信息 發(fā)給索引服務(wù)器,由索引服務(wù)器讀取上一個時間點到故障點的更新數(shù) 據(jù),對內(nèi)存索引進行恢復(fù)。上一個時間點是指上一次內(nèi)存索引與文件索 引合并操作成功完成的時間點。
      圖2為本發(fā)明分布式全文檢索的索引實時更新的系統(tǒng)結(jié)構(gòu)圖。包括信息發(fā)布服務(wù)器、通知服務(wù)器、請求分發(fā)服務(wù)器、索引服務(wù)器。
      信息發(fā)布服務(wù)器,當有索引信息更新時,向通知服務(wù)器發(fā)送更新請
      求,在更新請求中包括索引分類信息的數(shù)據(jù)。
      發(fā)送更新請求的操作可以是異步消息機制,在信息發(fā)布服務(wù)器和請
      求分發(fā)器之間建立一個消息通道,由信息發(fā)布觸發(fā)事件通知請求分發(fā)器
      獲取更新信息。例如,在信息發(fā)布服務(wù)器和請求分發(fā)器之間建立一個
      JMS消息通道,信息發(fā)布服務(wù)器將信息更新作為一個訂閱主題 (Topic),請求分發(fā)器作為一個消息訂閱者(Subscriber),信息發(fā)布服 務(wù)器將更新操作發(fā)布到Topic上,通過JMS消息通知請求分發(fā)器讀取 更新信息。
      通知服務(wù)器,維護一系列消息主題隊列,每一個消息主題隊列可包 含若千類索引分類的索引更新請求消息,當更新請求消息到達消息主題 隊列時,將更新請求消息發(fā)送到訂閱該主題的請求分發(fā)器。索引分類可 以是如下之一地域、數(shù)據(jù)所屬專業(yè)領(lǐng)域、索引日期、信息id范圍 等。
      請求分發(fā)器,根據(jù)記載有索引分類與索引服務(wù)器之間關(guān)系的路由信 息表,向與索引分類對應(yīng)的索引服務(wù)器發(fā)送更新請求。
      請求分發(fā)器可以是分布式部署的,可根據(jù)其負責的索引分類,訂閱 通知服務(wù)器上對應(yīng)的消息。請求分發(fā)器設(shè)置、安裝索引分類,將更新請 求分類,再分發(fā)到對應(yīng)分類的索引服務(wù)器上。請求分發(fā)器與索引服務(wù)器 之間維持路由信息表。每個索引服務(wù)器均在請求分發(fā)器上注冊,在注冊 請求中包括該索引服務(wù)器的索引分類,由請求分發(fā)器才艮據(jù)索引分類與索 引服務(wù)器的對應(yīng)關(guān)系生成路由信息表,保證索引更新請求正確的傳遞到 對應(yīng)的索引服務(wù)器。
      路由信息表可設(shè)置在請求分發(fā)器中,也可配置獨立的路由分發(fā)器。 當路由信息表設(shè)置在獨立的路由分發(fā)器中,請求分發(fā)器在接收到更新請 求時,到該路由分發(fā)器中獲取該路由信息表。路由信息表可根據(jù)索引分 類生成。例如,可以根據(jù)信息id范圍結(jié)合地域編碼劃分索引的分布, 則路由信息可由信息id范圍和地域編碼構(gòu)成,請求分發(fā)器根據(jù)記錄的,再訪問對應(yīng)的索引服務(wù)器。路 由信息表支持動態(tài)調(diào)整,保證在不停止原有索引服務(wù)的前提下擴展索引 服務(wù)。索引服務(wù)器,可以接收請求分發(fā)器的索引更新消息,也可以主動向 信息發(fā)布服務(wù)器發(fā)起數(shù)據(jù)訪問獲得索引更新消息,解析索引更新信息和 操作類型,對讀取到的索引更新信息按照索引結(jié)構(gòu)進行字段規(guī)范化,根 據(jù)操作類型對規(guī)范化后的索引更新信息進行增量操作。索引服務(wù)器可以是分布式部署的,從而索引也是分布式存放的。索 引服務(wù)器主動到信息發(fā)布服務(wù)器獲取更新信息。例如,信息發(fā)布服務(wù)器 可開放數(shù)據(jù)源訪問權(quán)限,由索引服務(wù)器定時對數(shù)據(jù)庫進行輪詢訪問,讀取數(shù)據(jù)的更新信息。數(shù)據(jù)源可以是數(shù)據(jù)庫,也可以是如web接口等其他 形式提供的數(shù)據(jù)接口。每一個索引服務(wù)器上的索引信息包括內(nèi)存索引和文件索引。索引采 用倒排的數(shù)據(jù)結(jié)構(gòu)。內(nèi)存索引保存最新更新的記錄,文件索引保存原有 信息以及合并的內(nèi)存索引的索引信息。對于索引更新信息,如果是新增 記錄,直接加入內(nèi)存索引。如果是刪除,則判斷記錄位于內(nèi)存索引還是 文件索引,再直接進行刪除。如果是修改,則判斷記錄位于內(nèi)存索引還 是文件索引,若位于內(nèi)存索引,則刪除原有記錄,再將修改后的記錄新 增到內(nèi)存索引;若位于文件索引,則在內(nèi)存索引中新增記錄,再從文件 索引中刪除該記錄。內(nèi)存索引在一定條件下將合并到文件索引。合并之后,內(nèi)存索引清 空。合并的條件可以是如下之一索引占用內(nèi)存空間。當內(nèi)存索引占用 內(nèi)存空間到達系統(tǒng)設(shè)定大小,將內(nèi)存索引合并到文件索引;索引包含記 錄數(shù)。當內(nèi)存索引包含的記錄數(shù)到達系統(tǒng)設(shè)定最大值,將內(nèi)存索引合并 到文件索引;時間點。當服務(wù)器時間到達系統(tǒng)指定的一個時間點,將內(nèi) 存索引合并到文件索引;系統(tǒng)資源空閑程度。當索引服務(wù)器的資源使用 率,例如CPU使用率、內(nèi)存占用率、IO讀寫量等,低于系統(tǒng)指定值, 將內(nèi)存索引合并到文件索引中。本發(fā)明采用通知的方式獲取索引更新信息,實現(xiàn)真正意義上的實時索引更新,顯著提高前端用戶體驗。在獲取索引更新信息后,分布式的 存儲索引更新信息,支持海量數(shù)據(jù)索引和高效的索引處理。此外,本發(fā)明還可以進一步包括容4晉^=莫塊,用于對多重索引信息進 行容錯備份。通過容錯模塊實時監(jiān)控內(nèi)存索引狀態(tài),在內(nèi)存索引出錯 時,切換到備份的索引信息,保證了系統(tǒng)的穩(wěn)定性。還進一步通過主動 訪問數(shù)據(jù)源的方式進行內(nèi)存索引的容錯控制。容錯模塊可以采用多節(jié)點備份容錯方式,根據(jù)索引重要程度或檢索 頻繁程度等,進行一對一或者多對一的索引備份。負責備份工作的服務(wù) 器可單獨為某一索引服務(wù)器備份即一對一備份,也可以為多個索引服務(wù) 器備份即多對一*,同一個索引服務(wù)器也可以配備兩臺或多臺服務(wù)器 進行熱備份。視具體工作的索引服務(wù)器的負載而定。 一旦工作服務(wù)器出 現(xiàn)故障,請求分發(fā)器將請求發(fā)到*服務(wù)器上,保證請求的正常處理。容錯模塊可以設(shè)置在索引服務(wù)器上,在每個索引服務(wù)器上對索引信 息進行容錯備份,將正確的在線索引備份為線下索引, 一旦在線索引損 壞,將切換為線下索引。例如,可在每一臺索引服務(wù)器存放完全相同的兩份索引,分為線上索引online和線下索引offline, —般情況下,索引 服務(wù)訪問online, —旦索引服務(wù)發(fā)現(xiàn)online無法訪問或出錯,則主動切 換到offline,將offline指定為online,保證檢索服務(wù)穩(wěn)定。采用輪詢方式實現(xiàn)內(nèi)存索引的容錯操作。容錯模塊記錄初始化內(nèi)存 索引的時間點,檢測內(nèi)存索引的可用性, 一旦發(fā)現(xiàn)內(nèi)存索引有誤,將 online指定為offline,將需要恢復(fù)的時間段信息、信息發(fā)布服務(wù)器信息 發(fā)送到索引服務(wù)器,并通知其啟動索引恢復(fù)過程進行索引恢復(fù)。例如, 每次合并內(nèi)存索引之后,容錯模塊記下時間點,在發(fā)現(xiàn)內(nèi)存索引故障 時,將合并內(nèi)存索引的時間點、故障時間點以及信息發(fā)布服務(wù)器的信息 發(fā)給索引服務(wù)器,由索引服務(wù)器讀取上一個時間點到故障點的更新數(shù) 據(jù),對內(nèi)存索引進行恢復(fù)。上一個時間點是指上一次內(nèi)存索引與文件索 引合并操作成功完成的時間點。圖3為本發(fā)明系統(tǒng)中索引服務(wù)器的結(jié)構(gòu)圖。包括數(shù)據(jù)源主動訪問模 塊、數(shù)據(jù)預(yù)處理模塊、索引模塊。14內(nèi)存索引發(fā)生故障時,配合容錯模塊 執(zhí)行容錯控制,接收容錯模塊的索引恢復(fù)請求,獲取恢復(fù)時間段信息, 向信息發(fā)布服務(wù)器發(fā)起數(shù)據(jù)訪問請求,并讀取索引更新信息和操作類 型,發(fā)送到數(shù)據(jù)預(yù)處理模塊進行后續(xù)處理。數(shù)據(jù)預(yù)處理模塊,接收請求分發(fā)器的索引更新消息,也可以主動向 信息發(fā)布服務(wù)器發(fā)起數(shù)據(jù)訪問獲得索引更新消息,解析索引更新信息和 操作類型,對讀取到的索引更新信息按照索引結(jié)構(gòu)進行字段規(guī)范化,并 發(fā)送給索引模塊。索引模塊,根據(jù)操作類型對數(shù)據(jù)預(yù)處理模塊處理后的索引更新信息 進行增量操作。其中,索引分為內(nèi)存索引和文件索引。對于索引更新信息,如果是新增記錄,直接加入內(nèi)存索引。如果是 刪除,則判斷記錄位于內(nèi)存索引還是文件索引,再直接進行刪除。如果 是修改,則判斷記錄位于內(nèi)存索引還是文件索引,若位于內(nèi)存索引,則刪除原有記錄,再將修改后的記錄新增到內(nèi)存索引;若位于文件索引, 則在內(nèi)存索引中新增記錄,再從文件索引中刪除該記錄。本發(fā)明的內(nèi)存索引在一定條件下,還將內(nèi)存索引的信息合并到文件 索引。合并之后,內(nèi)存索引清空。因此,文件索引保存原有索引信息以 及合并的內(nèi)存索引的索引信息。合并的條件可以是如下之一索引占用內(nèi)存空間。當內(nèi)存索引占用內(nèi)存空間到達系統(tǒng)設(shè)定大小,將內(nèi)存索引合并到文件索引;索引包含記 錄數(shù)。當內(nèi)存索引包含的記錄數(shù)到達系統(tǒng)設(shè)定最大值,將內(nèi)存索引合并到文件索引;時間點。當服務(wù)器時間到達系統(tǒng)指定的一個時間點,將內(nèi) 存索引合并到文件索引;系統(tǒng)資源空閑程度。當索引服務(wù)器的資源使用 率,例如CPU使用率、內(nèi)存占用率、IO讀寫量等,低于系統(tǒng)指定值, 將內(nèi)存索引合并到文件索引中。下面將結(jié)合實施例對本發(fā)明進行說明。信息門戶作為信息發(fā)布服務(wù)器,用戶發(fā)布信息經(jīng)過門戶處理進入門 戶的信息發(fā)布數(shù)據(jù)庫。采用JMS消息服務(wù)實現(xiàn)通知機制。在信息門戶與請求分發(fā)器之間架設(shè)一個JMS消息服務(wù)器作為通知服務(wù)器。JMS服務(wù)器上設(shè)置一個消 息主題Topic,在信息門戶上發(fā)布的信息,將轉(zhuǎn)變成索引更新請求發(fā)布 到Topic上。實現(xiàn)一個請求分發(fā)器Dispatcher,并作為Topic的訂閱者,登記到 JMS消息服務(wù)器上。根據(jù)索引分類配備多個索引服務(wù)器IndexServer,每個IndexServer 均在Dispatcher上注冊,由Dispatcher根據(jù)索引分類生成路由信息 表,保證索引更新請求正確的傳遞到對應(yīng)的IndexServer。每臺IndexServer均部署數(shù)據(jù)預(yù)處理模塊DataProcessor和索引模 塊Indexer。DataProcessor將Dispatcher發(fā)過來的數(shù)據(jù)處理成符合索引分類的 數(shù)據(jù)記錄。Indexer根據(jù)更新類型(增、刪、改),將記錄更新到索引信息中。 如果是新增,直接在內(nèi)存索引新增;如果是刪除,判斷在內(nèi)存索引還是 文件索引再刪除;如果是修改,且記錄位于內(nèi)存索引,則直接修改索 記錄,如果位于文件索引,則在內(nèi)存索引新增記錄,并將文件索引中的 記錄刪除。Indexer在符合索引合并條件的情況下,將內(nèi)存索引合并到文件索 引中,并清空內(nèi)存索引。釆用時間點的合并條件,也可以按內(nèi)存索引占 用空間、內(nèi)存記錄數(shù)、服務(wù)器空閑程度等作為合并條件。本領(lǐng)域的技術(shù)人員應(yīng)當可以根據(jù)本發(fā)明的實施方式和實施例作出相 應(yīng)的變形和修改,但是,所述變形和修改都應(yīng)覆蓋在本權(quán)利要求的保護 范圍之內(nèi)。
      權(quán)利要求
      1.分布式全文檢索的索引實時更新的方法,包括以下步驟當有索引信息更新時,由信息發(fā)布服務(wù)器向通知服務(wù)器發(fā)送更新請求,在更新請求中包括索引分類信息的數(shù)據(jù);由通知服務(wù)器將更新請求分配到對應(yīng)的消息主題隊列中,并將更新請求發(fā)送到訂閱相應(yīng)消息主題的請求分發(fā)器;每一個消息主題包含多類索引分類,負責維護所包含的索引分類對應(yīng)的索引更新請求;根據(jù)記載有索引分類與索引服務(wù)器之間關(guān)系的路由信息表,由請求分發(fā)器向與索引分類對應(yīng)的索引服務(wù)器發(fā)送更新請求;索引服務(wù)器接收請求分發(fā)器發(fā)送的索引更新請求,或主動向信息發(fā)布服務(wù)器發(fā)起數(shù)據(jù)訪問請求,讀取索引更新信息和操作類型;對讀取到的索引更新信息按照索引結(jié)構(gòu)進行字段規(guī)范化,根據(jù)操作類型對規(guī)范化后的索引更新信息進行增量操作。
      2. 根據(jù)權(quán)利要求l所述實時更新的方法,其中,索引分類包括至少如下之一地域、數(shù)據(jù)所屬專業(yè)領(lǐng)域、索引日期、信息id范圍。
      3. 根據(jù)權(quán)利要求1所述實時更新的方法,其中,建立記載有索引分類與索引服務(wù)器之間關(guān)系的路由信息表的操作,包括以下步驟每個索引服務(wù)器均在請求分發(fā)器上注冊,在注冊請求中包括該索引服務(wù)器的索引分類;根據(jù)索引分類與索引服務(wù)器之間的對應(yīng)關(guān)系建立路由信息表。
      4. 根據(jù)權(quán)利要求1所述實時更新的方法,其中,根據(jù)操作類型對規(guī)范化后的索引更新信息進行增量操作,包括如下之一當新增索引更新信息時,直接加入內(nèi)存索引;當刪除索引更新信息時,判斷要刪除的索引更新信息位于內(nèi)存索引還是文件索引,再直接進行刪除;當修改索引更新信息時,判斷索引更新信息位于內(nèi)存索引還是文件索引,如果位于內(nèi)存索引,刪除原有記錄,再將修改后的索引更新信息新增到內(nèi)存索引;如果位于文件索引,在內(nèi)存索引中新增索引更新信息,再從文件索引中刪除該索引更新信息。
      5. 根據(jù)權(quán)利要求4所述實時更新的方法,其中,當內(nèi)存索引到達設(shè)定條件時,將內(nèi)存索引合并到文件索引。
      6. 根據(jù)權(quán)利要求4或5所述實時更新的方法,其中,還包括在內(nèi)存索引故障時執(zhí)行的容錯控制,包括以下步驟由容錯才莫塊將需要恢復(fù)的時間段信息、信息發(fā)布服務(wù)器信息發(fā)送到索引服務(wù)器,并通知其啟動索引恢復(fù)過程進行內(nèi)存索引恢復(fù)。
      7. 分布式全文檢索的索引實時更新的系統(tǒng),包括信息發(fā)布服務(wù)器,當有索引信息更新時,向通知服務(wù)器發(fā)送更新請求,在更新請求中包括索引分類信息的數(shù)據(jù);通知服務(wù)器,維護消息主題隊列,在每一個消息主題隊列中包含多類索引分類的索引更新請求消息,當更新請求消息到達消息主題隊列時,將更新請求消息發(fā)送到訂閱該主題的請求分發(fā)器;請求分發(fā)器,根據(jù)記載有索引分類與索引服務(wù)器之間關(guān)系的路由信息表,向與索引分類對應(yīng)的索引服務(wù)器發(fā)送更新請求;索引服務(wù)器包括數(shù)據(jù)預(yù)處理模塊,接收請求分發(fā)器的索引更新消息,或主動向信息發(fā)布服務(wù)器發(fā)起數(shù)據(jù)訪問獲得索引更新消息,解析索引更新信息和操作類型,對讀取到的索引更新信息按照索引結(jié)構(gòu)進行字段規(guī)范化,并發(fā)送給索引模塊;索引模塊,根據(jù)操作類型對數(shù)據(jù)預(yù)處理模塊處理后的索引更新信息進行增量操作。
      8. 根據(jù)權(quán)利要求7所述實時更新的系統(tǒng),其中,索引分類包括至少如下之一地域、數(shù)據(jù)所屬專業(yè)領(lǐng)域、索引日期、信息id范圍。
      9. 根據(jù)權(quán)利要求7所述實時更新的系統(tǒng),其中,請求分發(fā)器接收索引服務(wù)器發(fā)送的注冊請求,在注冊請求中包括該索引服務(wù)器的索引分類,根據(jù)索引分類與索引服務(wù)器的對應(yīng)關(guān)系建立路由信息表。
      10. 根據(jù)權(quán)利要求7所述實時更新的系統(tǒng),其中,索引服務(wù)器執(zhí)行的增量操作包括如下之一當新增索引更新信息時,直接加入內(nèi)存索引;當刪除索引更新信息時,判斷要刪除的索引更新信息位于內(nèi)存索引還是文件索引,再直接進行刪除;當修改索引更新信息時,判斷索引更新信息位于內(nèi)存索引還是文件索引,如果位于內(nèi)存索引,刪除原有記錄,再將修改后的索引更新信息新增到內(nèi)存索引;如果位于文件索引,在內(nèi)存索引中新增索引更新信息,再從文件索引中刪除該索引更新信息。
      11. 根據(jù)權(quán)利要求10所述實時更新的系統(tǒng),其中,索引服務(wù)器在內(nèi)存索引到達設(shè)定條件時,將內(nèi)存索引合并到文件索引。
      12. 根據(jù)權(quán)利要求7所述實時更新的系統(tǒng),還包括容錯模塊,在內(nèi)存索引發(fā)生故障時,將索引恢復(fù)請求發(fā)送到索引服務(wù)器的數(shù)據(jù)源主動訪問模塊,索引恢復(fù)請求包括需要恢復(fù)的時間段信息、信息發(fā)布服務(wù)器信息;數(shù)據(jù)源主動訪問模塊,接收容錯模塊的索引恢復(fù)請求,向信息發(fā)布服務(wù)器發(fā)起數(shù)據(jù)訪問請求,讀取需要恢復(fù)的時間段內(nèi)的索引更新信息和操作類型,并發(fā)送給數(shù)據(jù)預(yù)處理模塊。
      全文摘要
      本發(fā)明提出分布式全文檢索的索引實時更新的方法和系統(tǒng)。當有索引信息更新時,由信息發(fā)布服務(wù)器向通知服務(wù)器發(fā)送更新請求,在更新請求中包括索引分類信息的數(shù)據(jù);由通知服務(wù)器將更新請求分配到對應(yīng)的消息主題隊列中,并將更新請求發(fā)送到訂閱相應(yīng)消息主題的請求分發(fā)器;根據(jù)記載有索引分類與索引服務(wù)器之間關(guān)系的路由信息表,由請求分發(fā)器向與索引分類對應(yīng)的索引服務(wù)器發(fā)送更新請求;索引服務(wù)器接收請求分發(fā)器發(fā)送的索引更新請求,讀取索引更新信息和操作類型;對讀取到的索引更新信息按照索引結(jié)構(gòu)進行字段規(guī)范化,根據(jù)操作類型對規(guī)范化后的索引更新信息進行增量操作。本發(fā)明使得對索引信息的更新操作能夠?qū)崟r的反映到索引中。
      文檔編號G06F17/30GK101650741SQ20091016833
      公開日2010年2月17日 申請日期2009年8月27日 優(yōu)先權(quán)日2009年8月27日
      發(fā)明者余錦婷, 雄 徐, 云 李, 楊翊平, 冰 梁, 蔡堅錚 申請人:中國電信股份有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1