開發垂直門戶的分佈式搜索引擎系統


最近遇到了頭疼的事情,就是開發垂直門戶的分佈式搜索引擎系統時,發現有四種不同應用的分佈式搜索引擎:
1.分佈式元搜索:
擁有多個單個的搜索引擎, 中心搜索引擎是利用這些分佈的單個的搜索引擎的結果進行撮合得到完整的結果.
這樣的設計方案要求各個單元的搜索引擎擁有相同的排序算法和基本相同的數據輸出結構,以便由中心搜索進行整理。

2.散列分佈搜索引擎
根據Query對索引服務器和文檔服務器進行散列,做到對於任何的索引詞能夠準確的定位到具體的索引服務器並從而定位到正確的文檔服務器。


3.Peer 2 peer 搜索引擎
利用集中方式的索引,配合分佈於世界各地的單個的計算機形成的文件源,構成了世界上最龐大的p2p搜索引擎之一。
這種設計裏的中心索引服務器只記錄一些相對關鍵的信息,例如位置(IP,序列號),歌曲的名字,作者等,其它的信息一概可以從任何在線並且擁有本條全面信息的計算機上獲取。同時p2p也可以根據搜索建立一些中間路由的緩存,即將一些搜索結果存在單個或者相近的節點上,加快搜索速度。


4.局部遍歷型搜索引擎
這類的搜索引擎又可以採用多種設計方案,其中比較可行的是對信息進行聚類後建立信息樹,搜索時只需要從樹的一個分支下去遍歷便可以了。局部遍歷應當有一定的規則,並且在設計初期就需要對每一個加入的索引進行相對準確的位置安排,使得放置在合適的節點上,以保證搜索的效率。

根據我們的應用需求,覺得第三種顯然不適合我們。第二種可能後臺的處理工作量巨大。現在的問題是:
在第一種分佈式元搜索和局部遍歷型搜索引擎之間的應如何取捨?
兩種引擎在應用中的優缺點是什麼?
有沒有可能將兩種引擎結合起來開發?
對於資源及設備需求來說,哪種的資源要求比較高?

看看是否有前輩高人幫助指點一下?或者進行一些探討?


 
  回覆人:yy8354(平靜等待) ( 一級(初級)) 信譽:100 2006-12-30 17:30:54 得分:0
 
 
?

我覺得第一種比較合適垂直搜索引擎並非通用抓的那麼廣泛 所以建立索引的時候以數據源的節點來考慮建立索引 每個節點對應一個搜索 最後合併索引結果就比較方便而且相對不需要考慮分佈式索引檢索的問題 同時由於索引相對獨立 因此單個索引的數據也小 搜索速度上也要提高同時最後的合併結果的服務器那邊加個cache服務器 提高速度和結構設計上都比較簡單 甚至爲了再進一步提高效率 在結果上進行聚類 而非索引上聚類也是種辦法

Top
 
  回覆人:yy8354(平靜等待) ( 一級(初級)) 信譽:100 2006-12-31 9:15:24 得分:0
 
 
?

昨天趕着下班回家 忘記重要的幾點沒說
第一種的設計上 一個節點掛掉 不影響整體的 最多就是少一些搜索結果 合併結果服務器可多可少 而且通過網關服務器來分流到不同的合併結果服務器上 可以很簡單的實現負載平衡
第四種的設計上考慮的信息樹的數據量問題 這個樹必須有多個copy 才能保證分流 否則信息樹服務器掛了 那你係統就over了 除非你的信息樹相對較小 否則內存上的消耗量 那是非一般的
Top
 
  回覆人:lixiaobai() ( 一級(初級)) 信譽:100 2006-12-31 10:01:57 得分:0
 
 
?

我覺得應該用 局部遍歷型搜索引擎 + 分佈式元搜索

就是說先使用 局部遍歷型搜索 建立起搜索引擎
然後再 部署多個這個的搜索系統 爲其建立一個統一界面 形成 分佈式元搜索

因爲首先 不可能直接有 分佈式元搜索 因爲無法估計你的每一個垂直搜索類別的數據量
當然 如果人爲限制 那麼也行 不過 適用範圍將大大縮小 也無法保證你的每一個元 有足夠的性能

局部遍歷型搜索 是一個可以大容量 高負荷運行的結構

散列分佈搜索引擎 和 Peer 2 peer 搜索引擎 我覺得對於大型系統 是有缺陷的
Top
 
  回覆人:xxlcg(☆突突☆) ( 一級(初級)) 信譽:100 2007-1-10 10:56:18 得分:0
 
 
?

我覺得(散列分佈搜索引擎/局部遍歷型搜索引擎)+分佈式元搜索
散列分佈或者局部遍歷的下一層再使用元搜索
其實使用散列還是局部遍歷要看你垂直領域的業務特點,能容易抽成散列就散列,否則就局部
Top
 
  回覆人:lshuy2001(洋洋) ( 一級(初級)) 信譽:100 2007-1-12 17:37:09 得分:0
 
 
?

有個問題想問問
就是信息的排序,一般搜索引擎都是按照相關度來排序,如果多個服務器搜索的時候,搜索到的結果的排序肯定不同吧!這個時候 中心 是否還要排序,如果排序的話,做一個循環,是不是很費時間。
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章