那么該如何定義搜索引擎的DNA呢?為簡單起見,不妨將它們在某個查詢下返回的結果頁列表作為DNA,而每一個結果項所對應的網址則是DNA中的基本單元(或者說,核糖核苷)。舉例來說,在yahoo.cn中搜索"劉德華",會得到下面的結果列表(第一頁):
- 劉德華_影音娛樂_新浪網
- andylau.com
- 劉德華_騰訊娛樂
- 劉德華非官方網站,是FANS...
- 劉德華_騰訊娛樂
- awc618.com
- 劉德華論壇-123木頭人...
- 劉德華:他的面孔已不是一種符號_TOM娛樂
- 一個紳士劉德華名副其實的偶像
- 劉德華:光芒萬丈的不老情人_網易娛樂頻道
每一個結果項的網址(URL)都是全球唯一的標識,而且經常會同時出現在多家搜索引擎的結果頁當中,只不過其排序會發(fā)生變化。而作為搜索引擎而言,一般會 把它認為比較"好"的結果項放在前面,把"差"一些的結果項放在后面。當然,每一家搜索引擎對"好"的定義不盡相同,所以它們在幕后所使用的結果排序算法 也不盡相同。我們通過比較各家搜索引擎的結果項的排列順序,可以或多或少地窺探到它們在排序算法上的相似度,甚至它們之間某種內在的"親緣關系"。
在SearchAll0.4.12當中提供了一個全新的視圖來幫助我們進行這種比較,該視圖叫做"映射視圖"。例如,對于"劉德華"這個查詢,我們如果使用Google.cn,Yahoo.cn,和Baidu.com作為當前的三家引擎,會得到下面的視圖:

圖中三串小球自左向右分別對應Google優(yōu)化,Yahoo優(yōu)化,和百度優(yōu)化所返回的結果列表。每一個結果網址分別對應一只小球;對于完全相同的網址,其小球之間有直線相連,且小球本身也顯示為嫩黃色。
從圖中不難看出,對于"劉德華"這個查詢,Google和Yahoo的排序算法與Yahoo和Baidu之間相比,要更接近一些。當然,僅從單次查 詢的結果,就對引擎的親緣性作出結論,是相當武斷的。通過多次不同的查詢,我們才能作出比較接近實際的判斷。你不妨親自動手試一下:)
對于天然具有親緣關系的搜索站點,比如易搜和雅虎全能搜索,則在SearchAll的"映射視圖"中顯示出近乎一一對應的關系:

圖中左邊的那串小球是易搜的結果,而右邊的則是yahoo.cn全能搜索的。事實上,兩個站點在后臺使用的是同一套引擎,只不過前臺的展現邏輯很不一樣而已。類似地,中國的Google優(yōu)化和美國的Google優(yōu)化這兩個站點在中文查詢下,也幾乎是一一對應關系:

通過進一步的嘗試,我們還會發(fā)現,對于圖片搜索引擎,即使是熱門查詢,其關聯度也極低。比如在Yahoo.cn和Baidu.com的圖片搜索中搜"劉德華",我們也沒有看到一條連線。
值得一提的是,這些連線圖形都是在用戶的客戶端直接生成的(感謝Firefox對canvas標簽的支持),所以SearchAll插件仍然是0服務器端的應用;)
"映射視圖"這個功能的創(chuàng)意其實源自下面這個網站(感謝SDS的青焱的推薦):
http://www.langreiter.com/exec/google-vs-google.html?q=Perl
和SearchAll不同的是,該站點是在自己的服務器上抓取搜索引擎的結果,并生成好Flash圖形,最后再傳回客戶端的。
未來我們可能還會在"映射視圖"中順帶著計算"編輯距離"等相關的數值。(感謝復旦大學的laye的提議�。┤绻阆氲搅烁腥じ眍惖谋葘λ阉饕娴姆绞�,請告訴我們。我們EEEE hacking小組會盡最大努力把好的想法在SearchAll的未來版本中變?yōu)楝F實。