不知你上網時注意到沒有:一些內容豐富的網站,總建有一個內容搜索引擎;一些大型的商業網站或者綜合網站,都配有強大的網站搜索引擎,比如搜狐、新浪、雅虎等等。其方便的搜索查詢功能至今給人們留下難以磨滅的印象,你只要輸入你想瀏覽資料的關鍵字(比如:網頁),一按「搜索」按鈕,關於「網頁」的資料列表就呈現在你的眼前;這只是搜索引擎的基本功能 --搜索查詢。
( e: M+ N+ p7 r* r! j4 w @, i* ?& q) U, N# P5 q- x
筆者現在專門負責網上山東(http://www.china-sd.net)中山東搜索版塊的建設,利用最常用的開發語言--asp開發搜索引擎的強大功能!下面我就搜索引擎主要組成部分和其中一些功能的實現代碼講解給大家,有什麼不足之處請大家給予指出! 1 o. I h1 K8 y! C5 Y" P' |3 g3 G
# B# W8 [0 N0 l- n) g 在這一章節中,我介紹一下搜索引擎的組成部分和主要功能。
9 g4 _* B5 g" W) b. x7 r# ]
/ M2 D" w( i) _) G. h" y2 A 搜索引擎的組成,大致分為三部分: 9 X* q# b/ B$ E' F: @
7 n+ u0 \" ~% y( m$ l$ j3 F 1、界面:這一部分主要是面向客戶的,是可以看到的部分,比如您打開search.sina.com.cn事後看到的頁面。 ) ]% Z4 t& t2 M) s. P
% W( \) }( [! ]3 ~; }# ]
2、程序:這一部分主要是執行代碼,根據客戶的搜索要求去執行代碼從而獲得搜索結果;這些是我們看不到的。
Q: b! `" ?2 S; j3 e) F5 C0 x$ T/ n3 x9 }) F
3、數據庫:所有的搜索引擎都離不開數據庫,連著名的google.com也不例外;數據庫是儲存搜索資料的倉庫,儲存的越多,搜索得到的資料就會越多,這也是搜索引擎是否強大的閃耀點之一。
( a }; o" g5 A- J L# I2 w/ I; q9 k/ g
那麼搜索引擎是否強大還有其他的閃耀點嘍,是什麼呢?對,搜索引擎數據庫中的存儲資料再多,我們不能夠方便的去查找搜索,甚至查找不到所需的資料,那麼這個數據庫就是「死」的,毫無用處可言,所以程序代碼起到非常重要的作用。
' O$ n0 @" `7 q! v: O0 b) |+ m$ _( e; _, D
講到這裡,我應該給大家介紹一下搜索引擎的幾個主要功能: 1 i; V, n" i) d5 z9 L9 O5 l( Z
9 }# {: p& A! a2 I3 c 1、搜索查詢:毫無疑問這是最基本的功能了,根據關鍵字找到符合關鍵字的相關資料。
7 L# \0 }& d8 t8 t
- f3 ]: X0 K- V' h2 P 2、分頁顯示:如果你搜索到的資料非常多,都放在一個頁面裡,那樣給人的感覺就會使亂糟糟的一片;分頁顯示根據人們看書的習慣,將一部分內容放到第一頁,其他的內容放到第二頁、第三頁等等。 6 ?# h. ~# }7 n( u) m
. S8 K( j- j2 Q, X& ^
3、搜索統計:一般包括查詢資料的數量,分幾個頁面,每個頁面含幾個資料,當前頁面資料範圍等等。
5 d" [- ` \4 N+ S& }
3 X+ ^3 `9 X* ~+ s9 `, Z& r. H 4、搜索結果編排:搜索排名我想大家不會陌生,這些是綜合網站搜索引擎掙money的一項措施,這也是強大搜索引擎中不可缺少的功能;比如根據點擊量排名,根據收費排名、根據等級排名。
7 v4 {# Z4 b- c1 ]7 b' o8 C; W& v# _4 \- b- H* K+ R5 J: l
5、多個關鍵字查詢:「如果要查找包含多個關鍵詞的信息,可以用空格把關鍵詞隔開」這是新浪搜索引擎版面中的一段文字,在一個文本框中打上多個關鍵字搜索查詢資料。 x* ]! C: u. A& |, w
+ \. d& U8 N% g8 O' q 6、整體統計:這個是對搜索引擎開通至今一些數據統計,包含「熱門查詢關鍵字」統計、數據庫中資料整體統計、每個類別所含資料統計等等。
3 w' Y3 G4 y- T2 K9 r' A1 s/ ?3 M, `
以上功能代碼主要根據筆者的要求來書寫,大家可以在我寫的代碼上做修改,以成為你自己需要的功能代碼。
6 D3 X$ I- I: c& q# T; l6 H0 q# a& w0 i7 `1 A8 b& |
好了,經過了一節的熱身後,我們也可以進入實戰階段,首先,我們先建一個數據庫,作為資料的存儲,這裡我將數據庫的文件名為information.mdb,使用access創建數據庫,當然你也可以使用sqlserver創建。 : a2 x. b' b0 G0 o* j! s [% U
- w$ _' U' x0 u" P% w, T, x 建立四個表:www(存儲資料),sort(大類),samll(小類),key(查詢關鍵字)
6 ]: N' G) N& a, `1 j- c$ C- E" h7 g& [8 ~7 z! }. k# x( e+ i
1、www表:id---自動編號,sitename---站點名稱,url---站點鏈接,faq---簡要說明,key---關鍵字,time---添加時間,level---站點等級,sortid---大類id,smallid---小類id,hot---站點點擊次數。
3 Q3 T, ~9 k) @ q! |
* w k9 J5 `( E8 `' E7 W, M 2、sort表:id---自動編號,sort , o) Q8 h7 o) P7 K4 k# |
0 b' g& Y9 n8 u, J# Q
3、small表:id---自動編號,small " P- y+ q0 l3 y
Y* C2 j) O: L0 w 4、key表:keyname---關鍵字;keyhot---出現的次數
( h' N# _! @2 e$ P) g; u" k) }% K' z/ j. t) ~5 H' {, _
用asp建立與數據庫的連接:conn.asp # Z: j9 ?6 ^7 x" ?
8 Z% w E1 t* f7 h$ f 2 j) |4 J G+ E. ]7 V
3 P+ c* u& n% q$ o+ A
說明:使用Server.MapPath()表示的路徑為文件的相對路徑,我這裡conn.asp和information.mdb在同一個目錄下。我想這些都很簡單,大家很容易理解和接受的!好,將數據庫建立起來後,我們就可以建設強大功能的搜索引擎。請期待哦!嘻嘻~~~~ & p" u! I+ R0 a. T* x' s
: ]% K0 w7 j, b0 v7 l) w/ X 用asp製作強大的搜索引擎 -- 模糊搜索 ) _+ I( A, d7 {% k4 j- I
2 ?0 j: N, [0 `+ U5 G1 H x, r
根據一個關鍵字,搜索到相關的資料,這裡的「相關」是指資料中有類似這個關鍵字的字符串。例如:「山東」這個關鍵字,只要數據庫中資料裡包含「山東」這個關鍵字的都要把它們找出來。模糊搜索的應用其實很簡單,只要使用一個sql語句就可以實現,下面咱們看看他的語句的寫法。
5 Q" V2 f; P8 Z5 k
4 W/ E- Z$ j. c: ]8 Q( r/ m, Q e sql語法中你會發現這麼幾個判定詞:LIKE、NOT LIKE和 BETWEEN。 LIKE判定詞是一個非常有用的符號。不過,在很多情況下用了它可能會帶給你太多的數據,所以在用到它之前最好先開動腦筋多想想自己到底想獲得什麼數據。NOT LIKE是反其道而行了。BETWEEN假設你想取出一定範圍內的數據,而且你事先知道範圍的起點和終點,那麼你不妨採用BETWEEN 判斷詞。這幾個判定詞根據不同的環境使用,一般最常用的就是like和"%"結合了。
4 [, A# n# o6 {1 a' }+ Y$ U, r5 ~6 h' h2 b% R
dim sql,key ; H! B9 Z8 g6 a' l
2 L& b- c6 ], O/ l: B- _ key=request("key") 4 C; L- m+ g9 @& J% g, U
7 f0 N# O7 s; ?) G( p* A3 \2 \ sql="select * from www where sitename like '%"&key&"%' or faq like '%"&key&"%' or key like '%"&key&"%' " 8 ]4 V7 G, T8 M" Z" X
/ b1 ^9 w- T. d/ P+ z( x. k
說明:這裡的sql語句目的就是檢索數據庫中sitename字段中是否包含key,faq字段中是否包含key,key字段中是否包含key,這樣做的目的是讓搜索的範圍包含到「站點名稱」、「站點簡要說明」、「站點關鍵字」。如果你只想搜索關鍵字只要使用 sql="select * from www where key like '%"&key&"%' " 就可以了。「like」中都使用了「or」來相連,「or」 「或者」的意思,意思是不論哪一個like 符合條件,都要把搜索到的資料輸出顯示出來。
" L- @8 i9 M/ y: `1 u
! |3 Y& t* {# F* V) U# n OK,現在大可不必去看看能不能執行或者說執行的結果如何,因為搜索引擎大部分功能的實現都是靠sql語句的書寫了。等我把其他的相關sql語句的功能實現介紹完後,大家再看看效果,呵呵!別著急!! |
|