元詞把戲
到目前為止,我們一直都在使用極其簡(jiǎn)單的網(wǎng)頁(yè)示例。然而,絕大多數(shù)網(wǎng)頁(yè)擁有眾多結(jié)構(gòu),包括標(biāo)題、標(biāo)頭、鏈接和圖片,可我們還一直認(rèn)為網(wǎng)頁(yè)只是普通的詞表。接下來(lái),我們將探索搜索引擎如何處理網(wǎng)頁(yè)中的結(jié)構(gòu)。不過(guò),為了盡可能保持簡(jiǎn)單,我們只會(huì)引入一層結(jié)構(gòu):網(wǎng)頁(yè)的頂部會(huì)有一個(gè)標(biāo)題,之后是頁(yè)面的正文。上圖顯示了我們熟悉的三頁(yè)示例,并附加了一些標(biāo)題。
實(shí)際上,要像搜索引擎一樣分析網(wǎng)頁(yè)結(jié)構(gòu),我們需要了解更多編寫(xiě)網(wǎng)頁(yè)的知識(shí)。網(wǎng)頁(yè)是由一種特殊語(yǔ)言編寫(xiě)的,以便網(wǎng)絡(luò)瀏覽器能用很好的格式展示它們。(編寫(xiě)網(wǎng)頁(yè)最常用的語(yǔ)言被稱為HTML,不過(guò)HTML的細(xì)節(jié)對(duì)本次討論不重要。)標(biāo)頭、標(biāo)題、鏈接、圖片等格式化結(jié)構(gòu)是用被稱為元詞的特殊單詞編寫(xiě)的。比如,網(wǎng)頁(yè)標(biāo)題開(kāi)始使用的元詞也許是<titleStart>,而結(jié)束這個(gè)標(biāo)題的元詞可能是<titleEnd>。類似的,網(wǎng)頁(yè)正文可能是以<bodyStart>開(kāi)始,以<bodyEnd>結(jié)束。不要糾結(jié)于“<”、“>”這些符號(hào)。它們出現(xiàn)在絕大多數(shù)計(jì)算機(jī)鍵盤(pán)上,人們通常只知道這些符號(hào)的數(shù)學(xué)意義是“大于”和“小于”。不過(guò)在這里,這些符號(hào)和數(shù)學(xué)沒(méi)有任何關(guān)系,只是方便的象征,將這些元詞和網(wǎng)頁(yè)中的正常單詞區(qū)分開(kāi)來(lái)。
和上圖一樣的網(wǎng)頁(yè)集,但展示的是用元詞編寫(xiě)的情況,而非在網(wǎng)絡(luò)瀏覽器中顯示的樣子。
看一下上面的圖。這張圖展示的內(nèi)容和前一張圖一樣,但顯示的是實(shí)際編寫(xiě)網(wǎng)頁(yè)的樣子,而非在網(wǎng)絡(luò)瀏覽器中顯示的樣子。絕大多數(shù)網(wǎng)絡(luò)瀏覽器都能讓用戶檢驗(yàn)網(wǎng)頁(yè)的原始內(nèi)容,這需要選擇名為“查看網(wǎng)頁(yè)源代碼”的菜單選項(xiàng)——我建議你下次有機(jī)會(huì)試驗(yàn)一下。(注意,在這里使用的元詞,如<titleStart>和<titleEnd>是幫助你理解的虛構(gòu)的、易于辨認(rèn)的示例。在真實(shí)的HTML中,元詞被稱作標(biāo)簽(tag)。HTML中開(kāi)啟和結(jié)束標(biāo)題的標(biāo)簽是<title>和</title>——你可以在使用“查看網(wǎng)頁(yè)源代碼”的菜單選項(xiàng)后搜索這些標(biāo)簽。)
在創(chuàng)建一份索引時(shí),囊括所有元詞是件很簡(jiǎn)單的事。無(wú)須新把戲:你只要像存儲(chǔ)正常單詞一樣存儲(chǔ)元詞位置就行。下頁(yè)的圖顯示了從帶有元詞的三個(gè)網(wǎng)頁(yè)中創(chuàng)建的索引??匆幌逻@張圖,確保自己理解了其中所有的奧秘。比如,“mat”的項(xiàng)是1-11、2-11,表示“mat”是第1頁(yè)的第11個(gè)詞,也是第2頁(yè)的第11個(gè)詞。元詞位置的解讀也一樣,“<titleEnd>”的項(xiàng)是1-4、2-4和3-4,也就是說(shuō)“<titleEnd>”是第1頁(yè)、第2頁(yè)和第3頁(yè)的第4個(gè)詞。