程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP教程.應用實例15

PHP教程.應用實例15

編輯:關於PHP編程

基於Linux的搜索引擎實現
搜索引擎是為用戶提供快速獲取網頁信息的工具,其主要的功能是系統通過用戶輸入關鍵字,檢索後端網頁數據庫,將相關網頁的鏈接和摘要信息反饋給用戶。從搜索的范圍上一般分為站內網頁搜索和全局網頁搜索。隨著網頁數量的急劇增加,搜索引擎已經成為上網查詢信息的必須手段,各個大型網站均已經提供網頁數據搜索服務,並且出現了許多為大型網站提供專業搜索引擎服務的公司,如為Yahoo提供搜索服務的Google,為新浪網和263等國內網站提供服務的百度公司等。專業的搜索服務費用高而免費的搜索引擎軟件基本都是基於英文的檢索,所以都不太適合Intranet環境(如校園網等)的需要。
搜索引擎的基本組成一般分為網頁收集程序、網頁後端數據組織存儲、網頁數據檢索三部分。決定搜索引擎好壞的關鍵因素是數據查詢的響應時間,即如何組織好滿足全文檢索需要的大量網頁數據。
GNU/Linux作為一個優秀的網絡操作系統,其發行版本中集成了大量的網絡應用軟件,如 Web服務器(Apache + PHP)、目錄服務器(OpenLDAP)、腳本語言(Perl)、網頁收集程序(Wget)等。所以,通過將它們集中進行應用,便可以實現一個簡單、高效的搜索引擎服務器。
一、基本組成和使用方法
1、網頁數據收集
Wget程序是一個優秀的網頁收集程序,它采用多線程設計能夠方便地將網站內容鏡像到本地目錄中,並且能夠靈活定制收集網頁的類型、遞歸收集層次、目錄限額、收集時間等。通過專用的收集程序完成網頁的收集工作,既降低了設計的難度又提高了系統的性能。為了減小本地數據的規模,可只收集能夠查詢的html文件、txt文件、腳本程序asp和php只使用缺省的結果,而不收集如圖形文件或是其他的數據文件。
2、網頁數據過濾
由於html文件中存在大量的標記,如<body><table>等,這些標記數據沒有實際的搜索價值,所以加入數據庫前必須對收集的數據進行過濾。Perl作為廣泛使用的腳本語言,擁有非常強大而豐富的程序庫,可以方便地完成網頁的過濾。通過使用HTML-Parser庫可以方便地提取出網頁中包含的文字數據、標題數據、鏈接數據等。該程序庫可以在www.cpan.net中下載,並且該網站收集的Perl程序涉及范圍之廣,遠遠超出我們的現象。
3、目錄服務
目錄服務是針對大量數據檢索需要開發的服務,最早出現在X.500協議集中,後來擴展到TCP/IP中發展成為LDAP(Lightweight Directory Acess Protocol)協議,其相關的標准為1995年制定的RFC1777和1997年制定的RFC2251等。LDAP協議已經作為工業標准被Sun、Lotus、微軟等公司廣泛應用到其相關產品中,但是專用的基於Windows平台的目錄服務器卻較少見,OpenLDAP是免費的運行於Unix系統的目錄服務器,其產品的性能優秀,已經被許多的Linux發行版本收集(Redhat、Mandrake等),並且提供了包括C、Perl、PHP等的開發接口。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved