回顧過去,展望未來,未來成了搜索引擎的天下,個人、企業(yè)都瘋狂的關(guān)注著搜索引擎的變化。作為企業(yè),會根據(jù)搜索引擎的知名度以及日流量來選擇是否要投放廣告等;作為普通網(wǎng)民,會根據(jù)搜索引擎的性能和技術(shù)來選擇自己喜歡的引擎查找資料;作為技術(shù)人員,會把有代表性的搜索引擎作為研究對象……一時成了搜索經(jīng)濟時代。搜索成了網(wǎng)絡(luò)的重中之重。對從事網(wǎng)絡(luò)的朋友來說,了解一個好的搜索引擎,知道它的優(yōu)勢所在,掌握它的規(guī)律是很有必要的。
如何設(shè)計一個高效的搜索引擎?我們可以以百度所采取的技術(shù)手段來探討如何設(shè)計一個實用的搜索引擎。搜索引擎涉及到許多技術(shù)點,比如查詢處理,排序算法,頁面抓取算法,CACHE機制,ANTI-SPAM等等。這些技術(shù)細(xì)節(jié),作為商業(yè)公司的搜索引擎服務(wù)提供商比如百度,GOOGLE等是不會公之于眾的。我們可以將現(xiàn)有的搜索引擎看作一個黑盒,通過向黑盒提交輸入,判斷黑盒返回的輸出大致判斷黑盒里面不為人知的技術(shù)細(xì)節(jié)。
查詢處理與分詞是一個中文搜索引擎必不可少的工作,而百度作為一個典型的中文搜索引擎一直強調(diào)其“中文處理”方面具有其它搜索引擎所不具有的關(guān)鍵技術(shù)和優(yōu)勢。那么我們就來看看百度到底采用了哪些所謂的核心技術(shù)。我們分兩個部分來講述:查詢處理和中文分詞。
先來談系列一:查詢處理
用戶向搜索引擎提交查詢,搜索引擎一般在接受到用戶查詢后要做一些處理,然后在索引數(shù)據(jù)庫里面提取相關(guān)的信息。那么百度在接受到用戶查詢后做了些什么工作呢?
1、假設(shè)用戶提交了不只一個查詢串,比如“信息檢索理論工具”。
那么搜索引擎首先做的是根據(jù)分隔符比如空格,標(biāo)點符號,將查詢串分割成若干子查詢串,比如上面的查詢就會被解析為:<信息檢索,理論,工具>三個子字符串;這個道理簡單,我們接著往下看。
2、假設(shè)提交的查詢有重復(fù)的內(nèi)容,搜索引擎怎么處理呢?比如查詢“理論 工具理論”,百度是將重復(fù)的字符串當(dāng)作只出現(xiàn)過一次,也就是處理成等價的“理論工具”,而GOOGLE顯然是沒有進(jìn)行歸并,而是將重復(fù)查詢子串的權(quán)重增大進(jìn)行處理。那么是如何得出這個結(jié)論的呢?我們可以將“理論工具”提交給百度,再返回文檔,大致看看先進(jìn)頁的返回內(nèi)容。接著繼續(xù),我們提交查詢“理論 工具理論”,在看看返回結(jié)果,仍然是那么多返回文檔,當(dāng)然這個不能說明太多問題,那看看先進(jìn)頁返回結(jié)果的排序,看出來了嗎?順序完全沒有變化,而 GOOGLE 則排序有些變動,這說明百度是將重復(fù)的查詢歸并成一個處理的,而且字符串之間的先后出現(xiàn)順序基本不予考慮(GOOGLE是考慮了這個順序關(guān)系的)。
3、假設(shè)提交的中文查詢包含英文單詞,搜索引擎是怎么處理的?比如查詢”電影BT下載”,百度的方法是將中文字符串中的英文當(dāng)作一個整體保留,并以此為斷點將中文切分開,這樣上述的查詢就切為<電影,BT,下載>,不論中間的英文是否一個字典里能查到的單詞也好,還是隨機的字符也好,都會當(dāng)作一個整體來對待。至于為什么,你用查詢“電影dfdfdf下載”看看結(jié)果就知道了。當(dāng)然如果查詢中包含數(shù)字,也是如此辦理。
到目前為止,看似都很簡單,也很清楚,百度怎么處理用戶查詢的呢?歸納如下:首先根據(jù)分割符號將查詢分開,然后看看是否有重復(fù)的字符串,如果有,就拋棄多余的,只保留一個,接著判斷是否有英文或者數(shù)字,如果有的話,把英文或者數(shù)字當(dāng)作一個整體保留并把前后的中文切開。
暫時先談到這里,接下來我們會談及中文分詞技術(shù),請繼續(xù)關(guān)注我們先進(jìn)頁
掃一掃
關(guān)注新圖聞科技
全國咨詢熱線
186-0984-0880