最近遇到了頭疼的事情,就是開發垂直門戶的分佈式搜索引擎系統時,發現有四種不同應用的分佈式搜索引擎: 1.分佈式元搜索: 擁有多個單個的搜索引擎, 中心搜索引擎是利用這些分佈的單個的搜索引擎的結果進行撮合得到完整的結果. 這樣的設計方案要求各個單元的搜索引擎擁有相同的排序算法和基本相同的數據輸出結構,以便由中心搜索進行整理。
2.散列分佈搜索引擎 根據Query對索引服務器和文檔服務器進行散列,做到對於任何的索引詞能夠準確的定位到具體的索引服務器並從而定位到正確的文檔服務器。
3.Peer 2 peer 搜索引擎 利用集中方式的索引,配合分佈於世界各地的單個的計算機形成的文件源,構成了世界上最龐大的p2p搜索引擎之一。 這種設計裏的中心索引服務器只記錄一些相對關鍵的信息,例如位置(IP,序列號),歌曲的名字,作者等,其它的信息一概可以從任何在線並且擁有本條全面信息的計算機上獲取。同時p2p也可以根據搜索建立一些中間路由的緩存,即將一些搜索結果存在單個或者相近的節點上,加快搜索速度。
4.局部遍歷型搜索引擎 這類的搜索引擎又可以採用多種設計方案,其中比較可行的是對信息進行聚類後建立信息樹,搜索時只需要從樹的一個分支下去遍歷便可以了。局部遍歷應當有一定的規則,並且在設計初期就需要對每一個加入的索引進行相對準確的位置安排,使得放置在合適的節點上,以保證搜索的效率。
根據我們的應用需求,覺得第三種顯然不適合我們。第二種可能後臺的處理工作量巨大。現在的問題是: 在第一種分佈式元搜索和局部遍歷型搜索引擎之間的應如何取捨? 兩種引擎在應用中的優缺點是什麼? 有沒有可能將兩種引擎結合起來開發? 對於資源及設備需求來說,哪種的資源要求比較高?
看看是否有前輩高人幫助指點一下?或者進行一些探討?
|