用ASP製作強大的搜尋引擎
最後更新:2017-02-28
來源:互聯網
上載者:User
不知你上網時注意到沒有:一些內容豐富的網站,總建有一個內容搜尋引擎;一些大型的商業網站或者綜合網站,都配有強大的網站搜尋引擎,比如搜狐、新浪、雅虎等等。其方便的搜尋查詢功能至今給人們留下難以磨滅的印象,你只要輸入你想瀏覽資料的關鍵字(比如:網頁),一按搜尋按鈕,關於“網頁”的資料列表就呈現在你的眼前;這隻是搜尋引擎的準系統--搜尋查詢。
筆者現在專門負責網上山東(http://www.china-sd.net)中山東搜尋版塊的建設,利用最常用的開發語言--asp開發搜尋引擎的強大功能!下面我就搜尋引擎主要組成部分和其中一些功能的實現代碼講解給大家,有什麼不足之處請大家給予指出!
在這一章節中,我介紹一下搜尋引擎的組成部分和主要功能。
搜尋引擎的組成,大致分為三部分:
1、介面:這一部分主要是面向客戶的,是可以看到的部分,比如您開啟search.sina.com.cn事後看到的頁面。
2、程式:這一部分主要是執行代碼,根據客戶的搜尋要求去執行代碼從而獲得搜尋結果;這些是我們看不到的。
3、資料庫:所有的搜尋引擎都離不開資料庫,連著名的google.com也不例外;資料庫是儲存搜尋資料的倉庫,儲存的越多,搜尋得到的資料就會越多,這也是搜尋引擎是否強大的閃耀點之一。
那麼搜尋引擎是否強大還有其他的閃耀點嘍,是什麼呢?對,搜尋引擎資料庫中的儲存資料再多,我們不能夠方便的去尋找搜尋,甚至尋找不到所需的資料,那麼這個資料庫就是“死”的,毫無用處可言,所以程式碼起到非常重要的作用。
講到這裡,我應該給大家介紹一下搜尋引擎的幾個主要功能:
1、搜尋查詢:毫無疑問這是最基本的功能了,根據關鍵字找到符合關鍵字的相關資料。
2、分頁顯示:如果你搜尋到的資料非常多,都放在一個頁面裡,那樣給人的感覺就會使亂糟糟的一片;分頁顯示根據人們看書的習慣,將一部分內容放到第一頁,其他的內容放到第二頁、第三頁等等。
3、搜尋統計:一般包括查詢資料的數量,分幾個頁面,每個頁面含幾個資料,當前頁面資料範圍等等。
4、搜尋結果編排:搜尋排名我想大家不會陌生,這些是綜合網站搜尋引擎掙money的一項措施,這也是強大搜尋引擎中不可缺少的功能;比如根據點擊量排名,根據收費排名、根據等級排名。
5、多個關鍵字查詢:“如果要尋找包含多個關鍵詞的資訊,可以用空格把關鍵詞隔開”這是新浪搜尋引擎版面中的一段文字,在一個文字框中打上多個關鍵字搜尋查詢資料。
6、整體統計:這個是對搜尋引擎開通至今一些資料統計,包含“熱門查詢關鍵字”統計、資料庫中資料整體統計、每個類別所含資料統計等等。
以上功能代碼主要根據筆者的要求來書寫,大家可以在我寫的代碼上做修改,以成為你自己需要的功能代碼。
好了,經過了一節的熱身後,我們也可以進入實戰階段,首先,我們先建一個資料庫,作為資料的儲存,這裡我將資料庫的檔案名稱為information.mdb,使用access建立資料庫,當然你也可以使用sqlserver建立。
建立四個表:www(儲存資料),sort(大類),samll(小類),key(查詢關鍵字)
1、www表:id---自動編號,sitename---網站名稱,url---站台連結,faq---簡要說明,key---關鍵字,time---添加時間,level---網站等級,sortid---大類id,smallid---小類id,hot---網站點擊次數。
2、sort表:id---自動編號,sort
3、small表:id---自動編號,small
4、key表:keyname---關鍵字;keyhot---出現的次數
用asp建立與資料庫的串連:conn.asp
說明:使用Server.MapPath()表示的路徑為檔案的相對路徑,我這裡conn.asp和information.mdb在同一個目錄下。我想這些都很簡單,大家很容易理解和接受的!好,將資料庫建立起來後,我們就可以建設強大功能的搜尋引擎。請期待哦!嘻嘻~~~~
用asp製作強大的搜尋引擎 -- 模糊搜尋
根據一個關鍵字,搜尋到相關的資料,這裡的“相關”是指資料中有類似這個關鍵字的字串。例如:“山東”這個關鍵字,只要資料庫中資料裡包含“山東”這個關鍵字的都要把它們找出來。模糊搜尋的應用其實很簡單,只要使用一個sql語句就可以實現,下面咱們看看他的語句的寫法。
sql文法中你會發現這麼幾個判定詞:LIKE、NOT LIKE和 BETWEEN。 LIKE判定詞是一個非常有用的符號。不過,在很多情況下用了它可能會帶給你太多的資料,所以在用到它之前最好先開動腦筋多想想自己到底想獲得什麼資料。NOT LIKE是反其道而行了。BETWEEN假設你想取出一定範圍內的資料,而且你事Crowdsourced Security Testing道範圍的起點和終點,那麼你不妨採用BETWEEN 判斷詞。這幾個判定詞根據不同的環境使用,一般最常用的就是like和"%"結合了。
dim sql,key
key=request("key")
sql="select * from www where sitename like '%"&key&"%' or faq like '%"&key&"%' or key like '%"&key&"%' "
說明:這裡的sql語句目的就是檢索資料庫中sitename欄位中是否包含key,faq欄位中是否包含key,key欄位中是否包含key,這樣做的目的是讓搜尋的範圍包含到“網站名稱”、“網站簡要說明”、“網站關鍵字”。如果你只想搜尋索引鍵只要使用 sql="select * from www where key like '%"&key&"%' " 就可以了。“like”中都使用了“or”來相連,“or” “或者”的意思,意思是不論哪一個like 符合條件,都要把搜尋到的資料輸出顯示出來。
OK,現在大可不必去看看能不能執行或者說執行的結果如何,因為搜尋引擎大部分功能的實現都是靠sql語句的書寫了。等我把其他的相關sql語句的功能實現介紹完後,大家再看看效果,呵呵!別著急!!