穆海明 齊斌 劉盼
摘 要:平時(shí)經(jīng)常上網(wǎng)查閱資料的我們,對搜索一詞一定會(huì)有非常深刻的印象,本篇文章主要說明尋找信息的一種形式:搜索。搜索是相當(dāng)廣闊、挑戰(zhàn)性十足,而且眾所周知的領(lǐng)域,本文將會(huì)淺談搜索系統(tǒng)。主要把討論內(nèi)容限制在搜索系統(tǒng)的組成、何時(shí)該執(zhí)行搜索系統(tǒng),以及某些設(shè)計(jì)搜索界面和顯示搜索結(jié)果的實(shí)施建議。雖然對于小型網(wǎng)站的搜索功能,涉及不到這樣深遠(yuǎn)的一個(gè)話題,但通過這樣的一個(gè)探討,有利于對大型網(wǎng)站的設(shè)計(jì)和搜索系統(tǒng)的全面了解。
關(guān)鍵詞:搜索系統(tǒng);網(wǎng)站設(shè)計(jì)
1 選擇要搜索什么
假設(shè)我們已經(jīng)選擇了一種搜索引擎。哪些內(nèi)容應(yīng)該做索引以供搜索?顯然,把搜索引擎指向網(wǎng)站,告訴搜索引擎把它找到的每一份文件的全部文字都索引起來,這是搜索系統(tǒng)最大的價(jià)值:可以無所不包,有能力很快就包含很多的內(nèi)容。但是,把每樣?xùn)|西都做索引,不見得能滿足用戶。在龐大而復(fù)雜的網(wǎng)站環(huán)境中,會(huì)含有異質(zhì)的子網(wǎng)站和數(shù)據(jù)庫,建立搜索區(qū)域可以減少這些風(fēng)馬牛不相及的效果,讓用戶能夠集中他們的搜索;搜索區(qū)域中應(yīng)包含較具有同質(zhì)性的內(nèi)容。選擇要讓什么可以搜索,是不應(yīng)該受限于只選擇正確的搜索區(qū)域的。對一群文件或記錄而言,每一文件和記錄都有某種結(jié)構(gòu),無論是以HTML、XML或數(shù)據(jù)庫字段表示。這些結(jié)構(gòu)會(huì)儲(chǔ)存內(nèi)容組件:就是內(nèi)容的元素,通常比文件小。結(jié)構(gòu)中某些東西可以被搜索引擎使用,如作者姓名;而某些可以被忽略掉,如每底端的法律聲明。最后我們需要對什么內(nèi)容是“好的”有感覺,可能會(huì)以手動(dòng)或其他機(jī)制為有價(jià)值的內(nèi)容貼上標(biāo)簽。當(dāng)用于搜索時(shí),應(yīng)該先把“好”的東西展現(xiàn)出來,例如,電子商務(wù)網(wǎng)站上大部分的用戶都在搜索的產(chǎn)品,這些產(chǎn)品就能視為默認(rèn)的搜索對象,然后此搜索可以再擴(kuò)展到全站,作為一個(gè)修訂過的搜索選項(xiàng)。
2 搜索算法
2.1 模式匹配算法
大部分搜索算法采用匹配的方法,也就是說,它們會(huì)比對用戶的查詢字符串與網(wǎng)站文件全文的索引,以尋找符合的文本字符串。找到吻合字符串時(shí),來源文件就加進(jìn)搜索集合中。所以,如果用戶輸入查詢字符串“electric guitar”時(shí),任何文件只要含有“electric guitar”,就會(huì)被檢索出來。聽起來相當(dāng)簡單,但是這個(gè)比對過程可以用很多不同方式運(yùn)作,以產(chǎn)生不同的結(jié)果。有些算法傳回很多的結(jié)果,而這些結(jié)果各有不同的相關(guān)性,有些算法只傳回高質(zhì)量的結(jié)果。變動(dòng)范圍的兩個(gè)極端術(shù)語就是查全率和查準(zhǔn)率。甚至還有公式可以計(jì)算他們:查全率=#檢索出來的相關(guān)文件/#集合中的所有文件,查準(zhǔn)率=#檢索出來的相關(guān)文件/#集合中的相關(guān)文件。那么是否可以兼顧兩者呢,可惜,魚與熊掌不可兼得,考慮大到用戶的利益,我們需要在兩者間取得平衡,然后,根據(jù)選擇一種搜索引擎,其算法是偏向查全率或者查準(zhǔn)率視情況而定。
2.2 其他做法
當(dāng)你有“好”文件在手上時(shí),有些算法會(huì)把該文件轉(zhuǎn)換得相當(dāng)于一個(gè)查詢(這種做法通常稱為文件相似度)。例如“the”“is”“he”這些停用詞會(huì)從好文件中抽掉,留下一組語義豐富的術(shù)語,足以代表文件即可。然后,這些術(shù)語會(huì)轉(zhuǎn)換成一種查詢字符串,而這種查詢字符串可以讓你檢索出類似的結(jié)果。另一種做法展示那些已經(jīng)使用相類似的元數(shù)據(jù)做過索引的結(jié)果。當(dāng)然,一定還有其他的搜索算法,但重點(diǎn)是這些算法的主要目的是找出最好的文件集合作為搜索結(jié)果。但是,“最好”是相當(dāng)主觀的,而且必須了解什么人想在你的網(wǎng)站上找到什么。
3 分組結(jié)果
盡管我們可以用各種方式列出結(jié)果,卻沒有一種是完美的。像Google的混合式做法就很有希望,但是,通常必須介入搜索的設(shè)計(jì)工作,才可能擁有這樣的工具。無論是哪種情況,我們的網(wǎng)站通常是越來越大,因此,搜索結(jié)果也會(huì)變大。同時(shí),當(dāng)用戶放棄再看時(shí),那些就只是理想中的。然而另一種替代排序和排名的做法看來是有希望的:依照某個(gè)共同的方面把結(jié)果聚集起來。當(dāng)結(jié)果按類別和等級分組時(shí),可以改善效果。我們怎么分組結(jié)果?可惜,明顯的方式都沒什么用:我們可以使用現(xiàn)有的元數(shù)據(jù),諸如文件類型以及文件建立/修改日期,讓我們把搜索結(jié)果分成幾個(gè)組群。比較游泳的是從手工添加的元數(shù)據(jù)衍生出來的組群,諸如主題、用戶、語言,以及產(chǎn)品家族??上?,根據(jù)手工添加的做法會(huì)貴到嚇人。有些自動(dòng)化工具可以得到比較有用的主題類型組群,通??梢詽M足用戶所需。這些組群為結(jié)果提供了情境,你可以選擇你最感興趣的目錄,就能夠?yàn)g覽相當(dāng)小的一群搜索集合,以及一群相同主題領(lǐng)域的文件(理想上)。這種做法很類似動(dòng)態(tài)產(chǎn)生的搜索區(qū)域。
4 設(shè)計(jì)搜索界面
用戶差異性大,搜索技術(shù)也花招百出,所以實(shí)在沒有什么單一化的理想搜索界面。在web早起,很多搜索引擎都是在模仿在線圖書館目錄和以CD-ROM為主的數(shù)據(jù)庫中所采用的“傳統(tǒng)”搜索引擎功能,這些傳統(tǒng)系統(tǒng)多半提供給研究者、圖書館員及專業(yè)人士,而用戶通常要懂得復(fù)雜語言才能使它們。在web的用戶爆炸增長之后,全方位的搜索經(jīng)驗(yàn)和專長下降到最低點(diǎn),新生代的用戶沒那么多耐性。用戶通常只會(huì)輸入一兩個(gè)術(shù)語,不會(huì)包含任何運(yùn)算符,然后就按下“搜索”鈕,并希望能得到最佳的結(jié)果。搜索引擎開發(fā)人員的做法是,把老式的花俏找事隱藏在“高級搜索”界面之中。由于以上理由,最終又會(huì)晃回老路,支持受到挫折的用戶可以用更多的搜索語言,而且他們也愿意花時(shí)間學(xué)習(xí)復(fù)雜的搜索界面,并構(gòu)造出查詢字符串。但是就目前而言,假設(shè)最好的做法是讓搜索界面盡可能簡單,而這也是相當(dāng)合理的。
參考文獻(xiàn):
[1] Peter Morville,Louis Rosenfeld(美).Web信息架構(gòu)[M].陳建勛,譯.電子工業(yè)出版社,2013.
[2] Thomas H,Cormen Charles E,Leiserson Ronald L,Rivest Clifford Stein(美).算法導(dǎo)論[M].殷建平,徐云,王剛,劉曉光,蘇明,鄒恒明,王宏志,譯.機(jī)械工業(yè)出版社,2013.
作者簡介:穆海明(1994—),男,天津人,沈陽理工大學(xué)學(xué)生。
齊斌(1994—),男,遼寧盤錦人,沈陽理工大學(xué)學(xué)生。
劉盼(1994—),男,山西運(yùn)城人,沈陽理工大學(xué)學(xué)生。