無(wú)論是展示型企業(yè)網(wǎng)站,還是支持在線支付的商城網(wǎng)站,是否有站內(nèi)搜索功能將會(huì)影響到網(wǎng)站的用戶體驗(yàn),只有站內(nèi)搜索功能的支撐,才有可能讓網(wǎng)站訪問(wèn)者迅速找到適合自己的產(chǎn)品或者服務(wù)。然而常規(guī)企業(yè)網(wǎng)站由于成本限制,只會(huì)實(shí)現(xiàn)一個(gè)欄目的搜索功能,但有的企業(yè)網(wǎng)站卻要全站搜索,而本文將為您簡(jiǎn)述全站搜索實(shí)現(xiàn)原理。
網(wǎng)站單個(gè)欄目的搜索實(shí)現(xiàn)原理
單個(gè)欄目的數(shù)據(jù),在技術(shù)層面上,會(huì)把數(shù)據(jù)保存在同一張數(shù)據(jù)表中,就好像我們將所有的員工考勤記錄保存在Excel的一張工作表中的記錄是一樣的。當(dāng)我們需要查找符合一定條件的記錄時(shí),只需要進(jìn)行簡(jiǎn)單的搜索即可。這個(gè)搜索動(dòng)作對(duì)應(yīng)到網(wǎng)站數(shù)據(jù)庫(kù)的話,也就是一組SQL查詢語(yǔ)句,我們技術(shù)同事會(huì)將查詢出來(lái)的結(jié)果放到數(shù)組變量中,最后通過(guò)循環(huán)的方式展現(xiàn)在網(wǎng)頁(yè)中。整體而言,這種單個(gè)欄目的搜索相對(duì)來(lái)說(shuō)比較容易實(shí)現(xiàn)。
全站搜索實(shí)現(xiàn)原理一
在我們理解了單個(gè)欄目的搜索實(shí)現(xiàn)原理之后,就可以很容易的理解全站搜索的實(shí)現(xiàn)原理 了。其實(shí)全站搜索就是相當(dāng)于把單個(gè)欄目搜索操作對(duì)每一張需要被搜索的數(shù)據(jù)表都執(zhí)行一次,每一張數(shù)據(jù)表理論上是對(duì)應(yīng)一個(gè)數(shù)據(jù)表的。因此,需要搜索多少個(gè)表,就需要些多少組SQL查詢語(yǔ)句,然后將查詢出來(lái)的若干個(gè)結(jié)果分別保存到不同的數(shù)組變量中,再通過(guò)循環(huán)的方式展現(xiàn)在網(wǎng)頁(yè)中。由于搜索結(jié)果實(shí)際上是分組的,因此,我們可以非常靈活多變的為搜索結(jié)果頁(yè)設(shè)計(jì)不同的布局和展示方式。具體可以參考玉律網(wǎng)站建設(shè)公司創(chuàng)絡(luò)官網(wǎng)的搜索結(jié)果展示方式,如下圖所示:
全站搜索實(shí)現(xiàn)原理二
除了上面的這種全站搜索方式,我們還可以用其他方式來(lái)實(shí)現(xiàn),例如:?jiǎn)为?dú)創(chuàng)建一張索引表,用來(lái)存放對(duì)應(yīng)的標(biāo)題、內(nèi)容(內(nèi)容太多可能會(huì)影響效率或需要高性能服務(wù)器支持)和對(duì)應(yīng)的鏈接地址。當(dāng)網(wǎng)站管理員在網(wǎng)站后臺(tái)進(jìn)行添加、刪除數(shù)據(jù)時(shí),如果會(huì)影響到URL的形成,那么就需要同時(shí)更新這一張數(shù)據(jù)表的內(nèi)容。不過(guò)我們并不是特別推薦這種方式,原理一的實(shí)現(xiàn)相對(duì)更加簡(jiǎn)單和高效,大家可以多多嘗試,找到適合自己網(wǎng)站的全站搜索方式。當(dāng)然了,無(wú)論是哪種方式,當(dāng)出現(xiàn)沒(méi)有搜索結(jié)果的時(shí)候,我們都應(yīng)該展示推薦內(nèi)容給用戶或操作指引。
全站搜索雖然會(huì)極大的提高網(wǎng)站用戶體驗(yàn),但是如果處理不當(dāng),會(huì)消耗過(guò)多的服務(wù)器資源,造成網(wǎng)站訪問(wèn)緩慢或者超時(shí),或者對(duì)服務(wù)器性能要求比較高一些。對(duì)于這一點(diǎn),就需要技術(shù)同事進(jìn)行相應(yīng)的代碼優(yōu)化或者提高服務(wù)器性能,以平衡網(wǎng)站整體搜索效果。