欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
計算機世界網(wǎng)-基于Linux的搜索引擎實(shí)現
搜索引擎是為用戶(hù)提供快速獲取網(wǎng)頁(yè)信息的工具,其主要的功能是系統通過(guò)用戶(hù)輸入關(guān)鍵字,檢索后端網(wǎng)頁(yè)數據庫,將相關(guān)網(wǎng)頁(yè)的鏈接和摘要信息反饋給用戶(hù)。從搜索的范圍上一般分為站內網(wǎng)頁(yè)搜索和全局網(wǎng)頁(yè)搜索。隨著(zhù)網(wǎng)頁(yè)數量的急劇增加,搜索引擎已經(jīng)成為上網(wǎng)查詢(xún)信息的必須手段,各個(gè)大型網(wǎng)站均已經(jīng)提供網(wǎng)頁(yè)數據搜索服務(wù),并且出現了許多為大型網(wǎng)站提供專(zhuān)業(yè)搜索引擎服務(wù)的公司,如為Yahoo提供搜索服務(wù)的Google,為新浪網(wǎng)和263等國內網(wǎng)站提供服務(wù)的百度公司等。專(zhuān)業(yè)的搜索服務(wù)費用高而免費的搜索引擎軟件基本都是基于英文的檢索,所以都不太適合Intranet環(huán)境(如校園網(wǎng)等)的需要。
搜索引擎的基本組成一般分為網(wǎng)頁(yè)收集程序、網(wǎng)頁(yè)后端數據組織存儲、網(wǎng)頁(yè)數據檢索三部分。決定搜索引擎好壞的關(guān)鍵因素是數據查詢(xún)的響應時(shí)間,即如何組織好滿(mǎn)足全文檢索需要的大量網(wǎng)頁(yè)數據。
GNU/Linux作為一個(gè)優(yōu)秀的網(wǎng)絡(luò )操作系統,其發(fā)行版本中集成了大量的網(wǎng)絡(luò )應用軟件,如 Web服務(wù)器(Apache + PHP)、目錄服務(wù)器(OpenLDAP)、腳本語(yǔ)言(Perl)、網(wǎng)頁(yè)收集程序(Wget)等。所以,通過(guò)將它們集中進(jìn)行應用,便可以實(shí)現一個(gè)簡(jiǎn)單、高效的搜索引擎服務(wù)器。
一、基本組成和使用方法
1、網(wǎng)頁(yè)數據收集
Wget程序是一個(gè)優(yōu)秀的網(wǎng)頁(yè)收集程序,它采用多線(xiàn)程設計能夠方便地將網(wǎng)站內容鏡像到本地目錄中,并且能夠靈活定制收集網(wǎng)頁(yè)的類(lèi)型、遞歸收集層次、目錄限額、收集時(shí)間等。通過(guò)專(zhuān)用的收集程序完成網(wǎng)頁(yè)的收集工作,既降低了設計的難度又提高了系統的性能。為了減小本地數據的規模,可只收集能夠查詢(xún)的html文件、txt文件、腳本程序asp和php只使用缺省的結果,而不收集如圖形文件或是其他的數據文件。
2、網(wǎng)頁(yè)數據過(guò)濾
由于html文件中存在大量的標記,如<body><table>等,這些標記數據沒(méi)有實(shí)際的搜索價(jià)值,所以加入數據庫前必須對收集的數據進(jìn)行過(guò)濾。Perl作為廣泛使用的腳本語(yǔ)言,擁有非常強大而豐富的程序庫,可以方便地完成網(wǎng)頁(yè)的過(guò)濾。通過(guò)使用HTML-Parser庫可以方便地提取出網(wǎng)頁(yè)中包含的文字數據、標題數據、鏈接數據等。該程序庫可以在www.cpan.net中下載,并且該網(wǎng)站收集的Perl程序涉及范圍之廣,遠遠超出我們的現象。
3、目錄服務(wù)
目錄服務(wù)是針對大量數據檢索需要開(kāi)發(fā)的服務(wù),最早出現在X.500協(xié)議集中,后來(lái)擴展到TCP/IP中發(fā)展成為L(cháng)DAP(Lightweight Directory Acess Protocol)協(xié)議,其相關(guān)的標準為1995年制定的RFC1777和1997年制定的RFC2251等。LDAP協(xié)議已經(jīng)作為工業(yè)標準被Sun、Lotus、微軟等公司廣泛應用到其相關(guān)產(chǎn)品中,但是專(zhuān)用的基于Windows平臺的目錄服務(wù)器卻較少見(jiàn),OpenLDAP是免費的運行于Unix系統的目錄服務(wù)器,其產(chǎn)品的性能優(yōu)秀,已經(jīng)被許多的Linux發(fā)行版本收集(Redhat、Mandrake等),并且提供了包括C、Perl、PHP等的開(kāi)發(fā)接口。
使用目錄服務(wù)技術(shù)代替普通的關(guān)系數據庫作為網(wǎng)頁(yè)數據的后端存取平臺主要基于目錄服務(wù)的技術(shù)優(yōu)勢。目錄服務(wù)簡(jiǎn)化了數據處理類(lèi)型,去掉了通用關(guān)系數據庫的費時(shí)的事務(wù)機制,而是采用全局替換的策略對數據進(jìn)行更新,其應用的重點(diǎn)是大量數據的檢索服務(wù)(一般數據更新和檢索的頻率比例要求在1:10以上),強調檢索速度和全文查詢(xún),提供完整的數據備份,非常適合搜索引擎之類(lèi)服務(wù)的需要。從目錄服務(wù)技術(shù)解決問(wèn)題的重點(diǎn)不難看出其在數據檢索上的優(yōu)勢,它的提出時(shí)間遠遠落后于關(guān)系數據庫的提出時(shí)間,實(shí)際上反映了根據具體問(wèn)題優(yōu)化數據解決方案的原則。這與目前廣泛存在的凡是涉及大量數據處理必選SQL Server的處理方法形成鮮明對比。
通過(guò)選用成熟的目錄服務(wù)技術(shù)提高網(wǎng)頁(yè)查詢(xún)的效率,能夠簡(jiǎn)潔有效地提高數據處理能力。這也充分顯示了GNU/Linux系統運行開(kāi)放軟件的優(yōu)勢,畢竟不能方便地獲得運行于其他平臺的目錄服務(wù)器。
4、查詢(xún)程序設計
搜索引擎的前端界面是網(wǎng)頁(yè),用戶(hù)通過(guò)在特定的網(wǎng)頁(yè)中輸入關(guān)鍵字提交給Web服務(wù)器進(jìn)行處理。運行在A(yíng)pache Web服務(wù)器上的PHP腳本通過(guò)運行其相關(guān)ldap函數便可以執行關(guān)鍵字的查詢(xún)工作。主要進(jìn)行的工作是根據關(guān)鍵字構造查詢(xún)、向目錄服務(wù)器提交查詢(xún)、顯示查詢(xún)結果等。Linux + Apache + PHP作為廣泛使用Web服務(wù)器,與WinNT + IIS + ASP相比其性能毫不遜色,在目前的Linux發(fā)行版本中都集成了Apache + PHP 以及缺省的ldap、pgsql、imap等模塊。
5、計劃任務(wù)
搜索引擎的網(wǎng)頁(yè)數據收集、數據過(guò)濾、加入目錄數據庫等工作都應該是自動(dòng)完成的,在UNIX系統中有cron進(jìn)程來(lái)專(zhuān)門(mén)完成按照特定時(shí)間調度任務(wù),為了不影響系統的運行,一般可以把這些工作安排到深夜進(jìn)行。
二、具體步驟和注意事項
1、配置Wget軟件
在RedHat 6.2發(fā)行版中已經(jīng)集成了該軟件包,可以直接進(jìn)行安裝。將需要鏡像的站點(diǎn)地址編輯為一個(gè)文件中,通過(guò) -I 參數讀入該文件;為鏡像的站點(diǎn)指定一個(gè)本地下載目錄;為了避免內部網(wǎng)中鏈接的重復引用,一般只鏡像該站點(diǎn)內的數據;還可以根據網(wǎng)站的具體情況,指定其鏡像的深度。
2、配置Openldap服務(wù)
在RedHat 6.2發(fā)行版中已經(jīng)集成了Openldap-1.2.9,其配置文件存放在/etc/openldap的目錄中。主要的配置文件是slapd.conf,關(guān)鍵要打開(kāi)對檢索速度至關(guān)重要的index選項,可以使用setup工具,將ldap在系統引導后作為缺省服務(wù)啟動(dòng)。
Ldap服務(wù)可以通過(guò)文本文件方式存放數據,即LDIF文件格式。使用此方式可以高效地更新目錄服務(wù)數據,需要注意LDIF格式是通過(guò)空行對數據進(jìn)行分隔的,并且通過(guò)運行ldif2lbm將LDIF格式數據導入目錄數據庫中時(shí)需要暫停目錄服務(wù)。
3、編制數據過(guò)濾和LDIF文件生成腳本
為了方便地過(guò)濾網(wǎng)頁(yè)數據,可以調用Perl的HTML-Parser庫函數,該程序包下載后需要進(jìn)行編譯,在eg目錄下生成了相關(guān)的htext,htitle程序,在Perl中可以通過(guò)調用外部程序的方式運行該程序,并對其過(guò)濾結果通過(guò)重定向的方法生成臨時(shí)文件。本搜索引擎設計的目錄數據屬性有dn 、link、title、modifydate、contents,其中的dn通過(guò)Link進(jìn)行唯一性標識,將過(guò)濾后的網(wǎng)頁(yè)文本內容通過(guò)/usr/sbin/ldif程序進(jìn)行自動(dòng)編碼后放入LDIF文件中。
基本的LDIF文件格式如下:
dn: dc=27jd,dc=zzb
objectclass: top
objectclass: organization
dn: link= http://freemail.27jd.zzh/index.html, dc=27jd ,dc=zzb
link: http://freemail.27jd.zzh/index.html
title: Webmail主頁(yè)
modifydate: 2001年2月8日
contents::
CgpXZWJtYWls1vfSswoKCgoKIKHvoaG7ttOtyrnTw1dlYm1haWzPtc2zoaGh7yDO0t
KqyerH69PKz+QhISFPdXRsb29rxeTWw6O6U01UUDogZnJlZW1haWwuMjdqZC56emJQ
T1AzOiBmcm
VlbWFpbC4yN2pkLnp6YkROUyA6IDExLjk5LjY0Ljiy4srU08O7p6O6bWFpbGd1ZXN00
8O7p7/awe
6jum1haWxndWVzdNLR16Ky4dPDu6cg08O7p8P7OkAgZnJlZW1haWwuMjdqZC56emK/
2sHuOqChoa
AgIKHyzOG5qbf+zvEgofKzo7z7zsrM4iCh8s2o0bbCvKHyICCh8sq1z9bUrcDtIKHywfTR1
LK+of
IgofK8vMr1sr/W99Kzsb7Ptc2z08nK1NHpvLzK9bK/zfjC59bQ0MS9qMGius3OrLukCgoK
CqAKCg
o=
objectclass:webpage
基本的slapd.conf文件如下:
defaultaccess read
include /etc/openldap/slapd.at.conf
#include /etc/openldap/slapd.oc.conf
schemacheck off
sizelimit 20000
pidfile /var/run/slapd.pid
argsfile /var/run/slapd.args
#######################################################################
# ldbm database definitions
#######################################################################
database ldbm
dbcachesize 1000000
index contents,title
suffix "dc=27jd, dc=zzb"
directory /usr/tmp
rootdn "cn=root,dc=27jd, dc=zzb"
rootpw secret
通過(guò)對一個(gè)4萬(wàn)個(gè)網(wǎng)頁(yè)(約300M左右)的本地html文件目錄進(jìn)行過(guò)濾后生成的LDIF文件約180M左右,如果只取文字數據的前400個(gè)字符作為網(wǎng)頁(yè)內容,則生成文件約35M左右。
4、配置PHP+LDAP服務(wù)
在Redhat6.2中已經(jīng)集成了PHP3和php-ldap模塊,選擇完全安裝時(shí)便已經(jīng)安裝到/usr/lib/apache目錄中,注意檢查/etc/httpd/php3.ini中的動(dòng)態(tài)擴展(Dynamic Extensions)中的extension=ldap.so是否被選擇。PHP3中提供了豐富的LDAP存取函數,能夠方便完成對目錄數據的搜索功能。有關(guān)Apach + PHP編程方面的資料較多,在此不在贅述。注意在PHP3中的LDAP搜索函數ldap_search不能處理其返回結果超過(guò)目錄服務(wù)設定的最大檢索數據,所以可以根據具體情況,在slapd的配置文件中設定較大的檢索數據限制(sizelimit),此問(wèn)題在PHP4中已經(jīng)解決。
5、任務(wù)調度
在Redhat6.2中已經(jīng)集成了crond并且缺省安裝后便已經(jīng)啟動(dòng)。其相關(guān)配置文件有/etc/crontab、/etc/cron.daily、/etc/cron.hourly、/etc/weekly、/etc/monthly,你只需要根據數據的更新頻度,將網(wǎng)頁(yè)收集、網(wǎng)頁(yè)過(guò)濾、生成LDIF文件、停止目錄服務(wù)、更新目錄數據、重新啟動(dòng)目錄服務(wù),作為一個(gè)簡(jiǎn)單的Shell程序放入到相應的目錄中即可。
三、效果與思考
以上簡(jiǎn)單的介紹了我們的搜索引擎的實(shí)現方法和注意事項,這僅僅是我們在對GNU/Linux了解得非常膚淺的情況下設計的以目錄服務(wù)為核心的滿(mǎn)足內部網(wǎng)需要的搜索引擎系統,并不能代表GNU/Linux和它集成的大量軟件的真正實(shí)力。
通過(guò)在一臺安裝RedHat Linux 6.2 的Sparc Ultra 250上實(shí)際測試,對擁有4萬(wàn)個(gè)網(wǎng)頁(yè)的目錄數據進(jìn)行搜索時(shí),基于上述方法設計的搜索引擎響應速度一般在3秒左右,目錄數據完全更新大約需要4小時(shí)左右,能夠滿(mǎn)足內部網(wǎng)的需要。實(shí)際上,限制搜索響應速度的關(guān)鍵是PHP3的ldap_search函數沒(méi)有提供數據限制的功能,導致在查詢(xún)結果集過(guò)大時(shí)系統響應速度變慢,因為每次用戶(hù)能夠瀏覽的查詢(xún)結果實(shí)際是非常少的,而服務(wù)器端每次的查詢(xún)總是返回全部結果,在PHP4中的ldap_search通過(guò)指定sizelimit參數,能夠有效解決該問(wèn)題。
目錄服務(wù)的應用范圍非常廣泛,實(shí)際上作為大型的信息站點(diǎn)為了提高客戶(hù)訪(fǎng)問(wèn)效率,都或多或少采用了目錄服務(wù)的技術(shù)。目錄服務(wù)根據具體的應用需求的優(yōu)化設計方法,對我們決定應用系統的開(kāi)發(fā)無(wú)疑是一個(gè)啟發(fā),應該說(shuō)在基于索引信息的領(lǐng)域LDAP服務(wù)遠遠優(yōu)于傳統的關(guān)系數據庫系統。
基于GNU/Linux進(jìn)行網(wǎng)絡(luò )服務(wù)器程序設計,能夠充分體會(huì )到開(kāi)放源代碼的魅力和實(shí)力,它既能夠簡(jiǎn)化系統的設計,又大大地提高了工作效率,同時(shí)也有效降低了系統的成本。程序設計由一切從零開(kāi)始的復雜繁瑣的重復勞動(dòng),簡(jiǎn)化為問(wèn)題抽象、功能分解、查找資源、組合系統四個(gè)部分,更加強調對系統的認識、開(kāi)闊的視野和學(xué)習的能力,同時(shí)開(kāi)放源代碼也為系統進(jìn)一步優(yōu)化提供了堅實(shí)的基礎。
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
openldap的安裝與配置
用PHP通過(guò)LDAP操作活動(dòng)目錄(AD)的筆記
Linux下安裝openldap
Windows下LDAP服務(wù)器配置
安裝PHP的LDAP擴展
基于LDAP的Web身份認證機制的研究與設計收藏
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久