明輝手游網(wǎng)中心:是一個免費提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺!

用ASP制作強(qiáng)大的搜索引擎

[摘要]不知你上網(wǎng)時注意到?jīng)]有:一些內(nèi)容豐富的網(wǎng)站,總建有一個內(nèi)容搜索引擎;一些大型的商業(yè)網(wǎng)站或者綜合網(wǎng)站,都配有強(qiáng)大的網(wǎng)站搜索引擎,比如搜狐、新浪、雅虎等等。其方便的搜索查詢功能至今給人們留下難以磨滅的印象,你只要輸入你想瀏覽資料的關(guān)鍵字(比如:網(wǎng)頁),一按“搜索”按鈕,關(guān)于“網(wǎng)頁”的資料列表就呈現(xiàn)在你...
    不知你上網(wǎng)時注意到?jīng)]有:一些內(nèi)容豐富的網(wǎng)站,總建有一個內(nèi)容搜索引擎;一些大型的商業(yè)網(wǎng)站或者綜合網(wǎng)站,都配有強(qiáng)大的網(wǎng)站搜索引擎,比如搜狐、新浪、雅虎等等。其方便的搜索查詢功能至今給人們留下難以磨滅的印象,你只要輸入你想瀏覽資料的關(guān)鍵字(比如:網(wǎng)頁),一按“搜索”按鈕,關(guān)于“網(wǎng)頁”的資料列表就呈現(xiàn)在你的眼前;這只是搜索引擎的基本功能 --搜索查詢。

  筆者現(xiàn)在專門負(fù)責(zé)網(wǎng)上山東(http://www.china-sd.net)中山東搜索版塊的建設(shè),利用最常用的開發(fā)語言--asp開發(fā)搜索引擎的強(qiáng)大功能!下面我就搜索引擎主要組成部分和其中一些功能的實現(xiàn)代碼講解給大家,有什么不足之處請大家給予指出!

  在這一章節(jié)中,我介紹一下搜索引擎的組成部分和主要功能。

  搜索引擎的組成,大致分為三部分:

  1、界面:這一部分主要是面向客戶的,是可以看到的部分,比如您打開search.sina.com.cn事后看到的頁面。

  2、程序:這一部分主要是執(zhí)行代碼,根據(jù)客戶的搜索要求去執(zhí)行代碼從而獲得搜索結(jié)果;這些是我們看不到的。

  3、數(shù)據(jù)庫:所有的搜索引擎都離不開數(shù)據(jù)庫,連著名的google.com也不例外;數(shù)據(jù)庫是儲存搜索資料的倉庫,儲存的越多,搜索得到的資料就會越多,這也是搜索引擎是否強(qiáng)大的閃耀點之一。

   那么搜索引擎是否強(qiáng)大還有其他的閃耀點嘍,是什么呢?對,搜索引擎數(shù)據(jù)庫中的存儲資料再多,我們不能夠方便的去查找搜索,甚至查找不到所需的資料,那么這個數(shù)據(jù)庫就是“死”的,毫無用處可言,所以程序代碼起到非常重要的作用。

   講到這里,我應(yīng)該給大家介紹一下搜索引擎的幾個主要功能:

   1、搜索查詢:毫無疑問這是最基本的功能了,根據(jù)關(guān)鍵字找到符合關(guān)鍵字的相關(guān)資料。

   2、分頁顯示:如果你搜索到的資料非常多,都放在一個頁面里,那樣給人的感覺就會使亂糟糟的一片;分頁顯示根據(jù)人們看書的習(xí)慣,將一部分內(nèi)容放到第一頁,其他的內(nèi)容放到第二頁、第三頁等等。

   3、搜索統(tǒng)計:一般包括查詢資料的數(shù)量,分幾個頁面,每個頁面含幾個資料,當(dāng)前頁面資料范圍等等。

   4、搜索結(jié)果編排:搜索排名我想大家不會陌生,這些是綜合網(wǎng)站搜索引擎掙money的一項措施,這也是強(qiáng)大搜索引擎中不可缺少的功能;比如根據(jù)點擊量排名,根據(jù)收費排名、根據(jù)等級排名。

   5、多個關(guān)鍵字查詢:“如果要查找包含多個關(guān)鍵詞的信息,可以用空格把關(guān)鍵詞隔開”這是新浪搜索引擎版面中的一段文字,在一個文本框中打上多個關(guān)鍵字搜索查詢資料。

   6、整體統(tǒng)計:這個是對搜索引擎開通至今一些數(shù)據(jù)統(tǒng)計,包含“熱門查詢關(guān)鍵字”統(tǒng)計、數(shù)據(jù)庫中資料整體統(tǒng)計、每個類別所含資料統(tǒng)計等等。

   以上功能代碼主要根據(jù)筆者的要求來書寫,大家可以在我寫的代碼上做修改,以成為你自己需要的功能代碼。

  好了,經(jīng)過了一節(jié)的熱身后,我們也可以進(jìn)入實戰(zhàn)階段,首先,我們先建一個數(shù)據(jù)庫,作為資料的存儲,這里我將數(shù)據(jù)庫的文件名為information.mdb,使用access創(chuàng)建數(shù)據(jù)庫,當(dāng)然你也可以使用sqlserver創(chuàng)建。

  建立四個表:www(存儲資料),sort(大類),samll(小類),key(查詢關(guān)鍵字)

    1、www表:id---自動編號,sitename---站點名稱,url---站點鏈接,faq---簡要說明,key---關(guān)鍵字,time---添加時間,level---站點等級,sortid---大類id,smallid---小類id,hot---站點點擊次數(shù)。

    2、sort表:id---自動編號,sort

    3、small表:id---自動編號,small

    4、key表:keyname---關(guān)鍵字;keyhot---出現(xiàn)的次數(shù)

    用asp建立與數(shù)據(jù)庫的連接:conn.asp

  

  說明:使用Server.MapPath()表示的路徑為文件的相對路徑,我這里conn.asp和information.mdb在同一個目錄下。我想這些都很簡單,大家很容易理解和接受的!好,將數(shù)據(jù)庫建立起來后,我們就可以建設(shè)強(qiáng)大功能的搜索引擎。請期待哦!嘻嘻~~~~

  用asp制作強(qiáng)大的搜索引擎 -- 模糊搜索

  根據(jù)一個關(guān)鍵字,搜索到相關(guān)的資料,這里的“相關(guān)”是指資料中有類似這個關(guān)鍵字的字符串。例如:“山東”這個關(guān)鍵字,只要數(shù)據(jù)庫中資料里包含“山東”這個關(guān)鍵字的都要把它們找出來。模糊搜索的應(yīng)用其實很簡單,只要使用一個sql語句就可以實現(xiàn),下面咱們看看他的語句的寫法。

  sql語法中你會發(fā)現(xiàn)這么幾個判定詞:LIKE、NOT LIKE和 BETWEEN。 LIKE判定詞是一個非常有用的符號。不過,在很多情況下用了它可能會帶給你太多的數(shù)據(jù),所以在用到它之前最好先開動腦筋多想想自己到底想獲得什么數(shù)據(jù)。NOT LIKE是反其道而行了。BETWEEN假設(shè)你想取出一定范圍內(nèi)的數(shù)據(jù),而且你事先知道范圍的起點和終點,那么你不妨采用BETWEEN 判斷詞。這幾個判定詞根據(jù)不同的環(huán)境使用,一般最常用的就是like和"%"結(jié)合了。

  dim sql,key

  key=request("key")

  sql="select * from www where sitename like '%"&key&"%' or faq like '%"&key&"%' or key like '%"&key&"%' "

  說明:這里的sql語句目的就是檢索數(shù)據(jù)庫中sitename字段中是否包含key,faq字段中是否包含key,key字段中是否包含key,這樣做的目的是讓搜索的范圍包含到“站點名稱”、“站點簡要說明”、“站點關(guān)鍵字”。如果你只想搜索關(guān)鍵字只要使用 sql="select * from www where key like '%"&key&"%' " 就可以了。“l(fā)ike”中都使用了“or”來相連,“or” “或者”的意思,意思是不論哪一個like 符合條件,都要把搜索到的資料輸出顯示出來。

  OK,現(xiàn)在大可不必去看看能不能執(zhí)行或者說執(zhí)行的結(jié)果如何,因為搜索引擎大部分功能的實現(xiàn)都是靠sql語句的書寫了。等我把其他的相關(guān)sql語句的功能實現(xiàn)介紹完后,大家再看看效果,呵呵!別著急。