我們稱這種和索引普通單詞一樣索引元詞的簡單把戲為“元詞把戲”。這個把戲也許看起來簡單得可笑,但元詞把戲在讓搜索引擎執(zhí)行精確搜索和高質(zhì)量排名上扮演了至關(guān)重要的角色。舉個簡單例子證明。假設(shè)在某個時候,有個搜索引擎支持使用IN關(guān)鍵詞的特殊查詢,因此像boat IN TITLE這樣的查詢只會返回在網(wǎng)頁標題中包含了單詞“boat”的網(wǎng)頁,而查詢giraffe IN BODY則會找到在正文中包含“giraffe”(長頸鹿)的網(wǎng)頁。請注意,絕大多數(shù)搜索引擎并不完全按照這種方法提供IN查詢,但一些搜索引擎可以通過讓你點擊“高級搜索”選項,詳細說明查詢詞必須出現(xiàn)在標題或一份文件的特定位置來實現(xiàn)同樣的效果。我們假定IN關(guān)鍵詞存在,以便更容易解釋。事實上,在寫作本書時,谷歌已經(jīng)可以讓用戶通過使用關(guān)鍵詞intitle進行標題搜索:因此,在谷歌中查詢intitle:boat,將找到標題中帶有“boat”的網(wǎng)頁。自己試試!
讓我們來看看,在上面兩張圖中由三個網(wǎng)頁組成的示例里,搜索引擎如何有效地執(zhí)行查詢dog IN TITLE。首先,搜索引擎提取“dog”的索引項,也就是2-3、2-7和3-11。然后(這可能有點出人意料,但請忍耐片刻)搜索引擎會同時提取<titleStart>和<titleEnd>的索引項。
<titleStart>的索引項是1-1、2-1和3-1,<titleEnd>的索引項是1-4、2-4和3-4。這些提取信息全部顯示在上圖中,你可以忽略那些圈和框。
之后,搜索引擎開始掃描“dog”的索引項,檢查其命中,看是否有哪個命中發(fā)生在標題內(nèi)。“dog”的第一個命中是圈起來的項2-3,代表其是第2頁的第3個詞。通過一并掃描<titleStart>的項,搜索引擎就能知道第2頁的標題從哪開始——即索引項的第一個數(shù)字要以“2-”開始,也就是被圈的項2-1,即第2頁的標題從第1個單詞處開始。同樣的,搜索引擎能知道第2頁的標題在哪結(jié)束。搜索引擎只要掃描索引項中的<titleEnd>,尋找以“2-”開始的索引項數(shù)字,在這個例子中就是停止在被圈的項2-4處。因此第2頁的標題在第4個詞處結(jié)束。
我們目前已知的所有東西都被圖中圈住的項總結(jié)了。它們告訴我們第2頁的標題從第1個詞開始,到第4個詞結(jié)束,而“dog”這個詞是第3個詞。最后一步很簡單:因為3大于1,小于4,我們肯定“dog”的這次命中確實出現(xiàn)在一個標題中,因此第2頁應(yīng)該是查詢dog IN TITLE的命中。
現(xiàn)在搜索引擎可以轉(zhuǎn)向?qū)ふ摇癲og”的第二個命中,也就是2-7(第2頁的第7個詞),但因為我們已經(jīng)知道第2頁是命中,因此可以忽略2-7這個項,轉(zhuǎn)向下一個命中3-11(由一個框標記)。這表示“dog”是第3頁第11個詞。于是我們開始跳過被圈住的<titleStart>和<titleEnd>項,尋找以“3-”開始的項。(有一點需要重點注意,我們不必回到每行的開始,而是可以從之前掃描命中的地方重新開始。)在這個簡單例子中,以“3-”開始的項恰好彼此相鄰——<titleStart>是3-1,<titleEnd>是3-4。為便于參考,這兩個數(shù)字都用框圍了起來。接下來,我們又面臨判定“dog”在3-11的命中是否位于標題內(nèi)的問題??騼?nèi)信息告訴我們,它們都是在第三頁,“dog”是第11個詞,而標題從第1個詞開始,到第4個詞結(jié)束。因為11大于4,所以“dog”的這次命中出現(xiàn)在標題之后,也就是不在標題內(nèi)。網(wǎng)頁3并不是查詢dog IN TITLE的命中。