




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
畢業(yè)設(shè)計(jì)(論文)題目聚焦搜索引擎的設(shè)計(jì)與開發(fā)查詢系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
前言隨著Internet的迅速發(fā)展,人們的工作、學(xué)習(xí)和生活都已經(jīng)離不開網(wǎng)絡(luò),網(wǎng)上信息正以爆炸性的速度增長,其資源內(nèi)容幾乎涉及所有領(lǐng)域,已經(jīng)成為知識、信息的集合體,是人們獲取信息的基本工具。發(fā)展到現(xiàn)在,我們可以通過計(jì)算機(jī)在網(wǎng)上進(jìn)行點(diǎn)餐、逛街、娛樂、購物、聊天等等,這些都是面對個人層面而言的計(jì)算機(jī)技術(shù)所帶來的便利。對企業(yè)而言,許多公司都有著屬于自己的網(wǎng)站用來介紹公司信息以及產(chǎn)品介紹,或者公司的業(yè)務(wù)也會放在網(wǎng)站上以便與其它公司進(jìn)行合作??偠灾?,網(wǎng)絡(luò)的迅猛發(fā)展給社會帶來了極大的便利。在Internet網(wǎng)上進(jìn)行瀏覽和搜索自己想要的資訊,就好比進(jìn)入了世界上最大的圖書館,而這個圖書館里的書刊、雜志、廣告、新聞及各種形式的文獻(xiàn)信息全都沒有規(guī)律地排放著,沒有1個中心目錄將這些信息組織起來。正是因?yàn)镮nternet資源既豐富又分散且處于無序狀態(tài),使得人們在網(wǎng)上查找自己所需的信息并非易事。這時為滿足人眾信息檢索的需求,搜索引擎便應(yīng)運(yùn)而生。搜索引擎是指使用某些自動索引軟件來發(fā)現(xiàn)、收集網(wǎng)絡(luò)上的信息,然后對收集的網(wǎng)頁進(jìn)行標(biāo)引,建立1個可供查詢的大型數(shù)據(jù)庫。開發(fā)搜索引擎便是解決用戶對網(wǎng)絡(luò)上雜亂無章的信息進(jìn)行篩選得出用戶想要的信息的當(dāng)下的最好辦法。
本篇論文中開發(fā)的中文搜索引擎的原理為:首先是用爬蟲進(jìn)行全網(wǎng)搜索,抓取網(wǎng)頁;然后將抓取到的網(wǎng)頁進(jìn)行索引,同時也會記錄該網(wǎng)頁相關(guān)的屬性;最后后臺獲取前臺的查詢請求并調(diào)用中科院ICTCLA2013進(jìn)行分詞提取關(guān)鍵字,然后運(yùn)用關(guān)鍵字檢索索引文件并按照各種參數(shù)進(jìn)行復(fù)雜的計(jì)算,產(chǎn)生結(jié)果并返回給用戶。此搜索引擎的功能為:在頁面上可顯示當(dāng)?shù)氐奶鞖馇闆r,包括本地溫度、PM2.5、污染情況、地理位置、天氣信息;顯示當(dāng)日的熱點(diǎn)新聞,即熱搜榜;將新聞的種類進(jìn)行分類(“熱點(diǎn)”、“推薦”、“社會”……),用戶可根據(jù)類別查看自己喜歡的新聞;用戶可在頁面上的輸入框輸入自己想要查詢的問題并得到解答。結(jié)合當(dāng)下,各種搜索引擎的出現(xiàn),流氓插件的盛行,大多搜索引擎包含了大多用戶不需要的功能,導(dǎo)致加載緩慢,而此系統(tǒng)的推出,能在一定程度上滿足用戶快速的查詢的問題。
目錄 摘要 第1章緒論1.1引言本章首先介紹課題研究背景、聚焦搜索系統(tǒng)相關(guān)研究現(xiàn)狀,然后闡述本文主要研究內(nèi)容和組織結(jié)構(gòu)設(shè)計(jì)。1.2什么是搜索引擎搜索引擎[1]的英文為SearchEngine。搜索引擎是一個對互聯(lián)網(wǎng)信息資源進(jìn)行搜索整理和分類,并儲存在網(wǎng)絡(luò)數(shù)據(jù)庫中供用戶查詢的系統(tǒng),包括信息搜集、信息分類、用戶查詢?nèi)糠?。從使用者的角度看,搜索引擎提供一個包含搜索框的頁面,在搜索框輸入詞語,通過瀏覽器提交給搜索引擎后,搜索引擎就會返回跟用戶輸入的內(nèi)容相關(guān)的信息列表。其實(shí),搜索引擎涉及多領(lǐng)域的理論和技術(shù):數(shù)字圖書館、數(shù)據(jù)庫、信息檢索、信息提取、人工智能、機(jī)器學(xué)習(xí)、自然語言處理、計(jì)算機(jī)語言學(xué)、統(tǒng)計(jì)數(shù)據(jù)分析、數(shù)據(jù)挖掘、計(jì)算機(jī)網(wǎng)絡(luò)、分布式處理等,具有綜合性和挑戰(zhàn)性。搜索引擎的用途,對普通網(wǎng)民而言,搜索引擎則僅僅是一種查詢工具,作為工具,使用者要了解搜索引擎的功用、性能,探討并掌握其使用方法和技巧。對商家來說,搜索引擎是一種贏利的產(chǎn)品或服務(wù),而作為產(chǎn)品,搜索引擎商要研制、改進(jìn)和創(chuàng)新其搜索技術(shù);作為服務(wù),搜索引擎營銷商要研究搜索引擎優(yōu)化和推廣。利用搜索引擎的目的不同,構(gòu)成了搜索引擎研究的不同群體和對搜索引擎不同角度不同側(cè)重的研究。1.3聚焦搜索引擎提出的背景如今,在信息爆炸的互聯(lián)網(wǎng)時代,人們?nèi)绾卧诤A康幕ヂ?lián)網(wǎng)信息資源中盡快找到自己真正想要的信息?人們當(dāng)然會選擇網(wǎng)絡(luò)搜索服務(wù)。伴隨著互聯(lián)網(wǎng)的不斷發(fā)展和網(wǎng)絡(luò)信息資源的爆炸性式的增長,網(wǎng)絡(luò)搜索已經(jīng)成為人們從互聯(lián)網(wǎng)“海量”信息中獲得有效信息十分便捷的途徑,成為僅次于電子郵件的最成功的業(yè)務(wù)應(yīng)用。面對搜索引擎這塊金礦,諸如Google、百度、雅虎等互聯(lián)網(wǎng)巨頭紛紛跑馬圈地,相繼推出了音樂、圖片、新聞、本地搜索等服務(wù)。作為互聯(lián)網(wǎng)搜索技術(shù)與移動通信技術(shù)相結(jié)合的產(chǎn)物,近兩年來,移動搜索技術(shù)在日益走向成熟,應(yīng)用前景十分看好。移動搜索服務(wù)的最大優(yōu)勢在于它打破了電腦的線纜約束,讓用戶能通過隨身攜帶的手機(jī)即時獲取所需的信息。從實(shí)際應(yīng)用的角度看,手機(jī)搜索和PC搜索采用的基本原理相似,但手機(jī)搜索并不是網(wǎng)絡(luò)搜索的簡單翻版,其不同之處體現(xiàn)在兩個方面:首先,PC搜索強(qiáng)調(diào)的是“海量”,搜索結(jié)果多多益善;而手機(jī)屏幕小,因此需要對多余的圖片、超級鏈接、Flash等內(nèi)容進(jìn)行過濾,為用戶提供最精確、最有價值的內(nèi)容。其次,手機(jī)搜索可以隨時隨地進(jìn)行,這決定了搜索內(nèi)容和搜索過程具有更強(qiáng)的人性化色彩。從全球來看,近三年來,諸如Google、雅虎等傳統(tǒng)互聯(lián)網(wǎng)搜索引擎提供商加快進(jìn)軍移動搜索領(lǐng)域,相繼推出了基于短信和WAP的移動搜索引擎,開始提供移動搜索服務(wù)。從歐洲到北美和亞洲,一些主流的移動運(yùn)營商也逐步推出了移動搜索服務(wù)。移動搜索已經(jīng)成移動運(yùn)營商大理推廣的熱點(diǎn)業(yè)務(wù)應(yīng)用。移動搜索市場發(fā)展迅速,隨著移動搜索逐漸走出市場培育期以及未來4G商用帶來的增值應(yīng)用的豐富,移動和互聯(lián)網(wǎng)融合的發(fā)展趨勢注定了移動搜索是未來的發(fā)展方向,而且這個搜索技術(shù)的出現(xiàn)已經(jīng)開始引發(fā)一場新的競爭硝煙。1.3.1國內(nèi)外的研究現(xiàn)狀隨著互聯(lián)網(wǎng)技術(shù)的快速發(fā)展,我們可以在網(wǎng)絡(luò)中獲取自己想要的信息,但與此同時,面對浩瀚無邊的信息也給我們帶來了困擾,我們往往不能精確地、快速的定位信息,即遭受著“信息過載”和“信息迷航”的困擾。在這樣的背景下,聚焦搜索引擎應(yīng)運(yùn)而生,且聚焦搜索引擎的研究熱點(diǎn)正逐漸由過去的通用搜索引擎向聚焦搜索引擎轉(zhuǎn)變。聚焦搜索引擎技術(shù)最先是在國外開始進(jìn)行研究和應(yīng)用的。目前,聚焦搜索引擎已經(jīng)得到了廣泛的研究和應(yīng)用,涉及到很多領(lǐng)域,例如:購物、旅游、求職等領(lǐng)域,較為有代表性的聚焦搜索引擎有:(1)伯克利大學(xué)(Berkeley)的FocusedProject系統(tǒng)是由科學(xué)家S.Charkrabarti帶頭從事開發(fā)的。其主要是通過兩個程序來指導(dǎo)主題網(wǎng)絡(luò)蜘蛛工作,一個程序是專門用來計(jì)算下載的網(wǎng)頁文檔與預(yù)定主題的相關(guān)程度,這個程序叫做主題分類器(Classifier);另一個程序是用來確定哪些鏈接指向了主題相關(guān)的網(wǎng)頁信息,這個程序稱之為凈化器(Distiller)。(2)美國國家科學(xué)數(shù)字圖書館的CBP(即CollectionBuildingProgram),這個項(xiàng)目的目的是為科學(xué)、技術(shù)、數(shù)學(xué)和工程建設(shè)一個超大規(guī)模的在線數(shù)字圖書館,并試圖研究在某一主題領(lǐng)域上信息資源自動建設(shè)的可能性。CBP由于只面向教學(xué)和教育,因而,它具有主題精確度高的特點(diǎn),同時,其只提供URL并不存儲資源原文。該系統(tǒng)還可以根據(jù)少量的輸入自動將有限數(shù)量的與該主題最相關(guān)的URL列表返回給用戶。(3)Elsevier公司的Scirus系統(tǒng),Scirus是一個面向科學(xué)領(lǐng)域的聚焦搜索引擎,其搜索出來的科學(xué)信息具有較高主題相關(guān)度。目前,Scirus系統(tǒng)被認(rèn)為是互聯(lián)網(wǎng)上綜合性最強(qiáng)且最全面的科技文獻(xiàn)門戶網(wǎng)站,它只檢索有關(guān)科學(xué)內(nèi)容的網(wǎng)站,且過濾掉與科學(xué)無關(guān)的信息,將與科學(xué)內(nèi)容相關(guān)的信息呈現(xiàn)給用戶。(4)LIBClient-IRISWeb,該系統(tǒng)由TheAmericanAssociationofLawLibraries(AALL)在1997年2月發(fā)布,是美國北卡羅萊納州大學(xué)信息與圖書學(xué)院的BertDempsey和南卡羅萊納州法學(xué)院的RobertVreeland共同開發(fā)的一個在互聯(lián)網(wǎng)上專門搜索與法律相關(guān)的信息系統(tǒng)。該系統(tǒng)很大幅度提高了法律工作者在互聯(lián)網(wǎng)上搜索與法律相關(guān)的專業(yè)信息的效率。(5)經(jīng)濟(jì)類專業(yè)搜索引擎(WallStreetResearchNetwork),該搜索引擎是由美國WSRN公司開發(fā)的,其主要用于檢索工商企業(yè)、投資中介商、市場新聞、經(jīng)濟(jì)研究以及經(jīng)濟(jì)研究出版物等各類與經(jīng)濟(jì)財經(jīng)類相關(guān)的信息。(6)Zillow是于2006年開發(fā)的服務(wù)于房地產(chǎn)領(lǐng)域的搜索引擎,是為房產(chǎn)擁有者、房產(chǎn)買賣方、租賃者、房產(chǎn)經(jīng)紀(jì)人等提供的一個虛擬的信息平臺。這些用戶可以通過Zillow來搜索了解當(dāng)?shù)胤康禺a(chǎn)相關(guān)信息。國外技術(shù)相對先進(jìn),很早就有了比較成熟的產(chǎn)品,國內(nèi)技術(shù)相對落后,但是近年來隨著對搜索技術(shù)的不斷探索,涌現(xiàn)出了很多可喜的成果,具有代表性的面向特定主題的聚焦搜索引擎系統(tǒng)主要有以下一些應(yīng)用。①賽迪網(wǎng)的“IT羅盤”是國內(nèi)最具有代表性聚焦搜索引擎,目前收錄了2萬多條IT網(wǎng)址和數(shù)百萬IT網(wǎng)頁數(shù)據(jù),涵蓋了IT領(lǐng)域的絕大多數(shù)網(wǎng)絡(luò)信息資源。賽迪“IT羅盤”為用戶提供經(jīng)過人工處理和篩選的網(wǎng)頁搜索服務(wù),其網(wǎng)站目錄也都經(jīng)過人工分類和整理,收錄了大量經(jīng)過嚴(yán)格過濾和人工加工的網(wǎng)站。其有很多優(yōu)點(diǎn):分類精確合理,查詢便捷;使用人性化的設(shè)計(jì),為用戶提供開放的接口;支持包括GBK、GB2312、BIG5等主流的中文編碼標(biāo)準(zhǔn),并且可以在不同的編碼之間進(jìn)行轉(zhuǎn)換;支持布爾邏輯搜索模式;搜索速度快,平均響應(yīng)時間低于0.15秒。②奇虎問答主要專注于BBS信息領(lǐng)域,其獨(dú)創(chuàng)的社區(qū)搜索技術(shù)(PeopleRank)主要用來抓取和識別論壇和博客中的信息,最終以利于人們閱讀的方式展現(xiàn)給搜索用戶?;谶@一強(qiáng)大的社區(qū)搜索技術(shù),目前,奇虎問答已成為國內(nèi)答案數(shù)量最多最全的問答網(wǎng)站。③酷訊搜索是專業(yè)的旅游搜索引擎,專注于為國內(nèi)旅行者提供機(jī)票、火車票、酒店、旅游和度假等領(lǐng)域的搜索服務(wù)??嵊嵥阉鞑捎妙I(lǐng)先的數(shù)據(jù)挖掘和智能推薦等技術(shù),對海量旅行產(chǎn)品數(shù)據(jù)進(jìn)行實(shí)時整合、辨識以及處理,為旅行者提供最新最準(zhǔn)確的旅行產(chǎn)品價格和相關(guān)信息,以達(dá)到可以幫助旅行者對旅行產(chǎn)品進(jìn)行高效地比較,并選擇適合自己的旅行產(chǎn)品的目的??嵊嵶畛踔粚W⒂诨疖嚻鳖I(lǐng)域的搜索服務(wù),與百度、谷歌等通用搜索引擎不同,是一款以實(shí)時的生活信息為搜索對象的聚焦搜索引擎,能夠?qū)θ亢娇展竟俜骄W(wǎng)站進(jìn)行實(shí)時搜索,目前,其搜索范圍已超過2000家專業(yè)機(jī)票、火車票、酒店、以及度假產(chǎn)品等供應(yīng)商網(wǎng)站,用戶可以一站式獲取全面的旅游產(chǎn)品相關(guān)信息。目前,酷訊搜索月訪問記錄已突破5,500萬。④房老大是2006年5月正式上線的中國首個房地產(chǎn)行業(yè)的聚焦搜索引擎。其搜集了100個城市的房源信息,包括新房、別墅、二手房、寫字樓、租房、商鋪以及廠房等七種不同的房源信息。由于全部房源信息都是由房源供應(yīng)方進(jìn)行填寫,信息內(nèi)容包含地理位置、面積、戶型、價格等基本信息,因而,其搜索結(jié)果與通用的搜索引擎相比,房老大的搜索結(jié)果更精確、實(shí)用、全面,搜索用戶可以在短時間內(nèi)查找到自己想要的真實(shí)房源信息。⑤“去哪兒”是2005年5月上線的全球最大的中文旅行平臺,且是目前旅游行業(yè)被人們所熟知的聚焦搜索引擎代表。其通過網(wǎng)站及移動客戶端的全平臺覆蓋,隨時隨地為游客提供國內(nèi)外機(jī)票、旅游團(tuán)購、度假、酒店和旅行等信息的聚焦搜索,幫助他們找到性價比最高的旅行產(chǎn)品和最優(yōu)質(zhì)的信息,聰明地安排旅行。憑借其便捷、先進(jìn)的智能搜索技術(shù)對互聯(lián)網(wǎng)上的旅行信息進(jìn)行整合,為用戶提供實(shí)時、可靠、全面的旅游產(chǎn)品查詢和信息比較服務(wù)。綜上,盡管國內(nèi)的聚焦搜索引擎發(fā)展速度相對較快,但與國外相比,在數(shù)據(jù)挖掘、信息共享、開放接口等技術(shù)層面以及行業(yè)經(jīng)驗(yàn)上都還存在著很多差距,從而阻礙了聚焦搜索引擎的快速發(fā)展,而且中文詞匯組合變化是非常復(fù)雜的,也在一定程度上限制了中文搜索引擎的發(fā)展速度,因此,國內(nèi)的聚焦搜索引擎的發(fā)展?jié)摿κ呛艽蟮模嬖谥艽蟮陌l(fā)展空間。1.3.2目前研究工作中存在的問題(1)建立索引是檢索的根本,索引技術(shù)是檢索系統(tǒng)性能的重中之重。不同的數(shù)據(jù)庫存儲量都是巨大的,良好的索引對提高檢索效率非常的重要,對中文來說尤其如此。但如何建一個最優(yōu)秀的索引仍是現(xiàn)在研究工作中需要去研究的。(2)相比較英文,英文只有24個字母,但是中文擁有上千個字,就體現(xiàn)到中文索引面臨一個分詞問題,如何按字按詞自動索引,一直是目前情報界與語言界研究的熱點(diǎn),當(dāng)然最后應(yīng)該走的還是計(jì)算機(jī)自動分詞之路。其次,如何實(shí)現(xiàn)自動跟蹤索引,是又一個難題。(3)凡是發(fā)布到網(wǎng)上的系統(tǒng),都會考慮到一個信息安全的問題,在系統(tǒng)處理能力提高的同時,系統(tǒng)的連接能力也在不斷的提高。但在連接能力信息、流通能力提高的同時,基于網(wǎng)絡(luò)連接的安全問題也日益突出,如何保證此系統(tǒng)的網(wǎng)絡(luò)安全也是研究工作中一大難題。1.4系統(tǒng)開發(fā)的意義此次開發(fā)的系統(tǒng)是聚焦搜索引擎系統(tǒng)。系統(tǒng)的功能包括:天氣查詢,新聞查詢,用戶中文語句查詢。所有查詢都是系統(tǒng)的前臺服務(wù),即面向用戶的,方便乘客了解自己想要的信息。對于尚在象牙塔中的莘莘學(xué)子,搜索正在悄無聲息地改變他們的學(xué)習(xí)方式。Internet
與全球電信的迅猛發(fā)展使信息資源的“生產(chǎn)”“傳播”與“消費(fèi)”出現(xiàn)了新的格局,信息在網(wǎng)絡(luò)上的傳播速度迅速提升,這使得上網(wǎng)用戶獲取真正有用的信息越來越難,而開發(fā)此搜索引擎就能幫助用戶解決從目前種類繁多的信息中找到用戶真正有用的信息。1.5本文主要研究內(nèi)容和組織結(jié)構(gòu)本文的主要研究內(nèi)容是聚焦搜索引擎查詢系統(tǒng)的設(shè)計(jì)、分析和實(shí)現(xiàn)情況,主要包括頁面的天氣查詢和新聞分類和用戶普通查詢方面等內(nèi)容,并對實(shí)現(xiàn)各個功能的模塊的技術(shù)進(jìn)行了研究探討。論文內(nèi)容按以下結(jié)構(gòu)安排:(1)開發(fā)環(huán)境和相關(guān)技術(shù)介紹(第2章)(2)系統(tǒng)需求分析(第3章)(3)查詢系統(tǒng)的設(shè)計(jì)(第4章)(4)系統(tǒng)編碼(第5章)(5)測試(第6章)(6)結(jié)論與展望(第7章)其中第2章對與課題研究相關(guān)的技術(shù)作了簡要介紹,包括系統(tǒng)開發(fā)的集成環(huán)境、Servlet技術(shù)、JDBC數(shù)據(jù)庫連接技術(shù)等,本章是后面各章的鋪墊。第3章對于系統(tǒng)進(jìn)行了完整的需求分析。第4章是系統(tǒng)設(shè)計(jì)部分,包括系統(tǒng)邏輯思路設(shè)計(jì)、系統(tǒng)邏輯結(jié)構(gòu)設(shè)計(jì)、物理結(jié)構(gòu)設(shè)計(jì)、系統(tǒng)各功能模塊設(shè)計(jì)以及數(shù)據(jù)庫設(shè)計(jì)。第5章為系統(tǒng)的關(guān)鍵編碼。第6章為系統(tǒng)實(shí)現(xiàn)后的測試,對系統(tǒng)各個模塊和整體進(jìn)行功能測試。第2章相關(guān)技術(shù)概述本文研究的聚焦搜索引擎系統(tǒng)基于B/S模式,利用MyEclipse集成開發(fā)環(huán)境和MySQL數(shù)據(jù)庫管理系統(tǒng),采用的技術(shù)有:JavaServletAPI技術(shù),JDBC數(shù)據(jù)庫連接技術(shù),漢語分詞技術(shù)。2.1MyEclipse集成開發(fā)環(huán)境作為一套完整的開發(fā)工具集,MyEclipse[4](MyEclipseEnterpriseWorkbench,簡稱MyEclipse)企業(yè)級工作平臺是對EclipseIDE的擴(kuò)展,利用它我們就可以在數(shù)據(jù)庫和J2EE的開發(fā)、發(fā)布,以及應(yīng)用程序服務(wù)器的整合方面極大的提高工作效率。它是功能豐富的J2EE集成開發(fā)環(huán)境,包括了完備的編碼、調(diào)試、測試和發(fā)布功能,完整支持HTML,Struts,JSF,CSS,JavaScript,SQL,Hibernate。在結(jié)構(gòu)上,MyEclipse的特征可以被分為7類:1.J2EE模型2.WEB開發(fā)工具3.EJB開發(fā)工具4.應(yīng)用程序服務(wù)器的連接器5.J2EE項(xiàng)目部署服務(wù)6.數(shù)據(jù)庫服務(wù)7.MyEclipse整合幫助對于以上每一種功能上的類別,在Eclipse中都有相應(yīng)的功能部件,并通過一系列的插件來實(shí)現(xiàn)它們。MyEclipse結(jié)構(gòu)上的這種模塊化,可以讓我們在不影響其他模塊的情況下,對任一模塊進(jìn)行單獨(dú)的擴(kuò)展和升級。簡單而言,MyEclipse是Eclipse的插件,也是一款功能強(qiáng)大的J2EE集成開發(fā)環(huán)境,支持代碼編寫、配置、測試以及除錯,MyEclipse6.0以前版本需先安裝Eclipse。MyEclipse6.0以后版本安裝時不需安裝Eclipse。2.2JDBC數(shù)據(jù)庫連接JDBC[6](JavaDataBaseConnectivity,Java數(shù)據(jù)庫連接)是一種用于執(zhí)行SQL語句的JavaAPI,可以為多種關(guān)系數(shù)據(jù)庫提供統(tǒng)一訪問,它由一組用Java語言編寫的類和接口組成。JDBC提供了一種基準(zhǔn),據(jù)此可以構(gòu)建更高級的工具和接口,使數(shù)據(jù)庫開發(fā)人員能夠編寫數(shù)據(jù)庫應(yīng)用程序,同時,JDBC也是個商標(biāo)名。有了JDBC,向各種關(guān)系數(shù)據(jù)發(fā)送SQL語句就是一件很容易的事。它可向相應(yīng)數(shù)據(jù)庫發(fā)送SQL調(diào)用,將Java語言和JDBC結(jié)合起來使程序員只須寫一遍程序就可以讓它在任何平臺上運(yùn)行。Java數(shù)據(jù)庫連接體系結(jié)構(gòu)是用于Java應(yīng)用程序連接數(shù)據(jù)庫的標(biāo)準(zhǔn)方法。JDBC對Java程序員而言是API,對實(shí)現(xiàn)與數(shù)據(jù)庫連接的服務(wù)提供商而言是接口模型。作為API,JDBC為程序開發(fā)提供標(biāo)準(zhǔn)的接口,并為數(shù)據(jù)庫廠商及第三方中間件廠商實(shí)現(xiàn)與數(shù)據(jù)庫的連接提供了標(biāo)準(zhǔn)方法。JDBC使用已有的SQL標(biāo)準(zhǔn)并支持與其它數(shù)據(jù)庫連接標(biāo)準(zhǔn)。JDBC實(shí)現(xiàn)了所有這些面向標(biāo)準(zhǔn)的目標(biāo)并且具有簡單、嚴(yán)格類型定義且高性能實(shí)現(xiàn)的接口。JDBC主要做三件事:與數(shù)據(jù)庫建立連接、發(fā)送SQL語句并處理結(jié)果[10]。2.3ServletServlet是一個服務(wù)器端的組件,是J2EE中比較關(guān)鍵的組成部分(其實(shí)學(xué)到現(xiàn)在J2EE里面的13個標(biāo)準(zhǔn)才接觸了3個,他們分別是EJB,Servlet,JSP),Servlet技術(shù)的推出擴(kuò)展了Java語言在服務(wù)器端開發(fā)的功能,鞏固了Java語言在服務(wù)器端開發(fā)過程中的地位,而且現(xiàn)在使用非常廣泛的JSP技術(shù)也是基于Servlet的原理,JSP+JavaBeanstalk+Servlet成為實(shí)現(xiàn)MVC模式的一種有效的選擇。Servlet本質(zhì)上也是Java類,編寫Servlet需要遵循java的基本語法,但是與一般的Java類不同的是Servlet是只能運(yùn)行在服務(wù)器端的Java類,而且必須遵循特殊的規(guī)范,在運(yùn)行過程中有自己的生命周期,這些特性都是Servlet所獨(dú)有的。另外Servlet和HTTP協(xié)議是緊密聯(lián)系的,所以使用Servlet幾乎可以處理HTTP協(xié)議所有方面的內(nèi)容,這也正是Servlet受到開發(fā)人員青睞的最大原因。Servlet是對支持Java的服務(wù)器的一般擴(kuò)充。它最常見的用途是擴(kuò)展Web服務(wù)器,提供非常安全的、可移植的、易于使用的CGI替代品。它是一種動態(tài)加載的模塊,為來自Web服務(wù)器的請求提供服務(wù)。它完全運(yùn)行在Java虛擬機(jī)上。由于它在服務(wù)器端運(yùn)行,因此它不依賴于瀏覽器的兼容性。Servlet是一種服務(wù)器端腳本,它是一個特殊的Java類,繼承自HttpServlet,開發(fā)中主要用于處理和響應(yīng)客戶端的請求。Servlet在容器中運(yùn)行,其實(shí)例的和銷毀創(chuàng)建由容器進(jìn)行控制。每個Servlet的運(yùn)行都擁有生命周期:首先,(1)(容器)創(chuàng)建Servlet實(shí)例。然后,init(初始化,顯示相關(guān)Servlet實(shí)例信息)。再是,Service(處理和響應(yīng)請求)。最后,destroy(銷毀,釋放資源)[9]。2.4MySQLMySQL[5]是一個小型關(guān)系型數(shù)據(jù)庫管理系統(tǒng),開發(fā)者為瑞典MySQLAB公司。在2008年1月16號被Sun公司收購。而2009年,SUN又被Oracle收購.對于Mysql的前途,沒有任何人抱樂觀的態(tài)度.目前MySQL被廣泛地應(yīng)用在Internet上的中小型網(wǎng)站中。由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點(diǎn),許多中小型網(wǎng)站為了降低網(wǎng)站總體擁有成本而選擇了MySQL作為網(wǎng)站數(shù)據(jù)庫。與其他的大型數(shù)據(jù)庫例如Oracle、DB2、SQLServer等相比,MySQL自有它的不足之處,如規(guī)模小、功能有限(MySQLCluster的功能和效率都相對比較差)等,但是這絲毫也沒有減少它受歡迎的程度。對于一般的個人使用者和中小型企業(yè)來說,MySQL提供的功能已經(jīng)綽綽有余,而且由于MySQL是開放源碼軟件,因此可以大大降低總體擁有成本[5]。本系統(tǒng)中用的是MySQL5.6.24版本。2.5漢語分詞NLPIR漢語分詞系統(tǒng)(又名ICTCLAS2013),主要功能包括中文分詞;詞性標(biāo)注;命名實(shí)體識別;用戶詞典功能;支持GBK編碼、UTF8編碼、BIG5編碼。新增微博分詞、新詞發(fā)現(xiàn)與關(guān)鍵詞提?。粡埲A平博士先后傾力打造十余年,內(nèi)核升級10次。在各位ICTCLAS用戶強(qiáng)烈的要求下,張華平博士正式發(fā)布ICTCLAS2013版本,為了與以前工作進(jìn)行大的區(qū)隔,并推廣NLPIR自然語言處理與信息檢索共享平臺,從本版本開始,系統(tǒng)名稱調(diào)整為NLPIR漢語分詞系統(tǒng)。張博士先后傾力打造十余年,內(nèi)核升級10次,全球用戶突破20萬,先后獲得了2010年錢偉長中文信息處理科學(xué)技術(shù)獎一等獎,2003年國際SIGHAN分詞大賽綜合第一名,2002年國內(nèi)973評測綜合第一名。NLPIR漢語分詞系統(tǒng)(又名ICTCLAS2013),主要功能包括中文分詞;詞性標(biāo)注;命名實(shí)體識別;用戶詞典功能;支持GBK編碼、UTF8編碼、BIG5編碼。新增微博分詞、新詞發(fā)現(xiàn)與關(guān)鍵詞提??;全球用戶突破20萬,先后獲得了2010年錢偉長中文信息處理科學(xué)技術(shù)獎一等獎,2003年國際SIGHAN分詞大賽綜合第一名,2002年國內(nèi)973評測綜合第一名。本系統(tǒng)需要對用戶輸入的查詢語句進(jìn)行分詞,所以采用了網(wǎng)上免費(fèi)提供的中科院分詞系統(tǒng),本系統(tǒng)使用的版本為:2013年UTF8編碼版。2.6開放API平臺API[8](ApplicationProgrammingInterface,應(yīng)用程序編程接口)是一些預(yù)先定義的函數(shù),目的是提供應(yīng)用程序與開發(fā)人員基于某軟件或硬件得以訪問一組例程的能力,而又無需訪問源碼,或理解內(nèi)部工作機(jī)制的細(xì)節(jié)?;诨ヂ?lián)網(wǎng)的應(yīng)用正變得越來越普及,在這個過程中,有更多的站點(diǎn)將自身的資源開放給開發(fā)者來調(diào)用。對外提供的API調(diào)用使得站點(diǎn)之間的內(nèi)容關(guān)聯(lián)性更強(qiáng),同時這些開放的平臺也為用戶、開發(fā)者和中小網(wǎng)站帶來了更大的價值。開放是目前的發(fā)展趨勢,越來越多的產(chǎn)品走向開放。目前的網(wǎng)站不能靠限制用戶離開來留住用戶,開放的架構(gòu)反而更增加了用戶的粘性。在Web2.0的浪潮到來之前,開放的API甚至源代碼主要體現(xiàn)在桌面應(yīng)用上,而現(xiàn)在越來越多的Web應(yīng)用面向開發(fā)者開放了API。具備分享、標(biāo)準(zhǔn)、去中心化、開放、模塊化的Web2.0站點(diǎn),在為使用者帶來價值的同時,更希望通過開放的API來讓站點(diǎn)提供的服務(wù)擁有更大的用戶群和服務(wù)訪問數(shù)量。站點(diǎn)在推出基于開放API標(biāo)準(zhǔn)的產(chǎn)品和服務(wù)后,無需花費(fèi)力氣做大量的市場推廣,只要提供的服務(wù)或應(yīng)用出色易用,其他站點(diǎn)就會主動將開放API提供的服務(wù)整合到自己的應(yīng)用之中。同時,這種整合API帶來的服務(wù)應(yīng)用,也會激發(fā)更多富有創(chuàng)意的應(yīng)用產(chǎn)生。為了對外提供統(tǒng)一的API接口,需要對開發(fā)者開放資源調(diào)用API的站點(diǎn)提供開放統(tǒng)一的API接口環(huán)境,來幫助使用者訪問站點(diǎn)的功能和資源[9]。當(dāng)然,開放API的站點(diǎn)為第三方的開發(fā)者提供良好的社區(qū)支持也是很有意義的,這有助于吸引更多的技術(shù)人員參與到開放的開發(fā)平臺中,并開發(fā)出更為有趣的第三方應(yīng)用。本系統(tǒng)的天氣模塊調(diào)用的是百度APISTORE里提供的天氣信息與PM2.5與城市名開放平臺。第3章系統(tǒng)需求分析3.1用戶需求分析用戶需求分析分為兩個方面,一個是搜索詞分析,另外一個是用戶搜索意圖分析,通過搜索詞的分析可以返回一個可能是用戶需求的結(jié)果列表,通過用戶搜索意圖的分析并對搜索結(jié)果進(jìn)行調(diào)整,可以獲得此用戶更加想要的結(jié)果列表。3.2系統(tǒng)可行性分析在開發(fā)一個系統(tǒng)時,需要對可行性進(jìn)行分析??尚行苑治隹蓮沫h(huán)境可行、經(jīng)濟(jì)可行、技術(shù)可行3方面進(jìn)行分析。通過方方面面的分析,得出開發(fā)此系統(tǒng)的難度幾何,開發(fā)出來后有沒有市場。若是沒有進(jìn)行可行性分析就匆匆地進(jìn)行開發(fā),可能導(dǎo)致大問題。如:開發(fā)完系統(tǒng),并在調(diào)試通過正式投入使用后,卻發(fā)現(xiàn)用戶對系統(tǒng)的需求并不大,根本用不到開發(fā)的系統(tǒng),導(dǎo)致系統(tǒng)被淘汰,這樣既浪費(fèi)時間又浪費(fèi)人力。又如:系統(tǒng)的市場著實(shí)存在,人們對系統(tǒng)的需求大,但是卻沒有考慮到自己的水平、技術(shù)能否應(yīng)對此類系統(tǒng)的開發(fā),在沒有進(jìn)行技術(shù)可行性分析就進(jìn)行開發(fā),導(dǎo)致開發(fā)到一般發(fā)現(xiàn)自己的水平有限,無法完成系統(tǒng)的開發(fā),結(jié)果就是開發(fā)出一個半成品,而半成品的實(shí)際使用意義幾乎為零,畢竟顧客看的只是最后的結(jié)果,只看系統(tǒng)的功能如何,使用起來方不方便。顧客并不關(guān)心開發(fā)人員使用了什么技術(shù)。因此若是因?yàn)樽约旱募夹g(shù)不過關(guān)而導(dǎo)致系統(tǒng)開發(fā)的夭折在顧客看來就是沒有完成任務(wù)。諸如此類的情況都是浪費(fèi)時間和人力的表現(xiàn)。由此可見,在真正著手開發(fā)系統(tǒng)前,對系統(tǒng)進(jìn)行可行性分析是相當(dāng)重要的。3.2.1環(huán)境可行性分析搜索引擎是網(wǎng)站建設(shè)中針對“用戶使用網(wǎng)站的便利性”所提供的必要功能,同時也是“研究網(wǎng)站用戶行為的一個有效工具”。高效的站內(nèi)檢索可以讓用戶快速準(zhǔn)確地找到目標(biāo)信息,從而更有效地促進(jìn)產(chǎn)品/服務(wù)的銷售,而且通過對網(wǎng)站訪問者搜索行為的深度分析,對于進(jìn)一步制定更為有效的網(wǎng)絡(luò)營銷策略具有重要價值。所以搜索引擎是利國利民的,在環(huán)境上,可行。3.2.2技術(shù)可行性分析開發(fā)此系統(tǒng)使用的是Java語言,使用到的技術(shù)包括HTML,Servlet,JDBC等。對于Java語言方面,本人在校期間主要學(xué)習(xí)的就是Java語言,基本掌握J(rèn)ava的知識點(diǎn)。而開發(fā)網(wǎng)頁所用到的技術(shù)在畢業(yè)實(shí)習(xí)期間由老師帶著進(jìn)行了學(xué)習(xí)、鞏固,課余時間也從網(wǎng)上下載了相關(guān)的視頻進(jìn)行學(xué)習(xí),借鑒,對于基礎(chǔ)的技術(shù)掌握的較為扎實(shí)。在本系統(tǒng)中應(yīng)用到的技術(shù)都有一定的掌握,技術(shù)層面可以實(shí)現(xiàn)。3.2.3經(jīng)濟(jì)可行性分析開發(fā)本系統(tǒng)使用的工具為MySQL+Tomcat+Myeclipse三種工具。這三種工具全部都是免費(fèi)的開發(fā)工具,只需從網(wǎng)上下載自己所需要的對應(yīng)的開發(fā)的版本,然后進(jìn)行配置,在配置成功后就可以進(jìn)行開發(fā)。至于人力成本,該系統(tǒng)都是作者與小組成員一起進(jìn)行開發(fā),都是同學(xué),不存在人力成本超標(biāo)的情況。綜上,開發(fā)此系統(tǒng)的成本將是較低的,后期進(jìn)行再次開發(fā)或維護(hù)的成本也不會很高。經(jīng)分析:開發(fā)此系統(tǒng)經(jīng)濟(jì)方面不存在大問題,可行。第4章查詢系統(tǒng)的設(shè)計(jì)4.1系統(tǒng)設(shè)計(jì)的指導(dǎo)思想聚焦搜索引擎系統(tǒng)是一個基于B/S模式的應(yīng)用系統(tǒng),基于互聯(lián)網(wǎng)信息的種類多,數(shù)量大,數(shù)據(jù)訪問需要時效性,用戶使用需要簡單性等特點(diǎn),在開發(fā)系統(tǒng)時需要考慮到用戶實(shí)際應(yīng)用中的具體情況,便于今后對系統(tǒng)進(jìn)行擴(kuò)展,增加功能或進(jìn)行與其他系統(tǒng)的業(yè)務(wù)之間的聯(lián)系。4.2系統(tǒng)邏輯思路設(shè)計(jì)用例圖是指用來幫助開發(fā)團(tuán)隊(duì)以一種可視化的方式來理解整個系統(tǒng)的功能需求??偟膩碚f,用例圖就是軟件系統(tǒng)的功能模塊,也是項(xiàng)目開發(fā)的起點(diǎn),從這個點(diǎn)開始,設(shè)計(jì)人員根據(jù)需求來設(shè)計(jì)系統(tǒng)。也只有畫好了用例圖,才算是真正了解系統(tǒng),才能真正意義上做出客戶希望的系統(tǒng)。對于此系統(tǒng)各個模塊的實(shí)現(xiàn),都是按照如下用例圖的邏輯來設(shè)計(jì),對于用例圖的邏輯分析將在本章4.2小節(jié)介紹,如圖所示:圖4.1系統(tǒng)邏輯用例圖4.2系統(tǒng)邏輯結(jié)構(gòu)設(shè)計(jì)聚焦搜索引擎系統(tǒng)作為B/S應(yīng)用系統(tǒng),采用的是目前比較流行的三層架構(gòu)模式來進(jìn)行開發(fā),即表示層、業(yè)務(wù)邏輯層、數(shù)據(jù)訪問層。4.2.1表示層表示層,即客戶端訪問層,是用戶在使用系統(tǒng)時進(jìn)行直觀操作的頁面,其具體表現(xiàn)為HTML的Web頁面。表示層位于最外層(最上層),最接近用戶。用于顯示數(shù)據(jù)和接收用戶輸入的數(shù)據(jù),為用戶提供一種交互式操作的界面。表示層還要負(fù)責(zé)瀏覽器端的數(shù)據(jù)驗(yàn)證和信息安全處理,為用戶提供前端安全服務(wù)。AJAX異步通信技術(shù)的應(yīng)用使得表示層的功能增強(qiáng),給用戶以更好的界面體驗(yàn)。4.2.2業(yè)務(wù)邏輯層業(yè)務(wù)邏輯層主要負(fù)責(zé)處理表示層和數(shù)據(jù)訪問層的交互,它的關(guān)注點(diǎn)主要集中在業(yè)務(wù)規(guī)則的制定、業(yè)務(wù)流程的實(shí)現(xiàn)等與業(yè)務(wù)需求有關(guān)的系統(tǒng)設(shè)計(jì),也即是說它是與系統(tǒng)所應(yīng)對的領(lǐng)域(Domain)邏輯有關(guān),很多時候也將業(yè)務(wù)邏輯層稱為領(lǐng)域?qū)印>唧w來說,由于業(yè)務(wù)操作的特性,系統(tǒng)中會出現(xiàn)對某個業(yè)務(wù)規(guī)則的反復(fù)使用,而在業(yè)務(wù)邏輯層中封裝了各種業(yè)務(wù)操作類,可以有效地通過接口來實(shí)現(xiàn)上層(表現(xiàn)層)對下層(業(yè)務(wù)邏輯層)的調(diào)用,避免前端代碼過多影響效率。同時作為中間層來調(diào)用數(shù)據(jù)訪問層來進(jìn)行對數(shù)據(jù)庫增刪查改的操作,提高系統(tǒng)性能,減少前端對底層數(shù)據(jù)庫的操作,增加安全性。4.2.3數(shù)據(jù)訪問層數(shù)據(jù)訪問層是系統(tǒng)訪問數(shù)據(jù)庫系統(tǒng)的接口,它封裝了所有的數(shù)據(jù)訪問操作,向上層的業(yè)務(wù)邏輯層提供了調(diào)用方法,有效的減少了代碼冗余,在數(shù)據(jù)操作過程中簡化了開發(fā)的復(fù)雜度,避免了在客戶端對數(shù)據(jù)庫進(jìn)行操作。4.3系統(tǒng)物理結(jié)構(gòu)設(shè)計(jì)聚焦搜索引擎系統(tǒng)是一個B/S系統(tǒng),所以在物理結(jié)構(gòu)上可以分為三個部分:客戶端,應(yīng)用程序服務(wù)器和數(shù)據(jù)庫服務(wù)器。本系統(tǒng)的具體物理結(jié)構(gòu)如圖4.1。圖4.2物理結(jié)構(gòu)圖終端用戶可根據(jù)需要選擇瀏覽器,客戶端無需安裝軟件也無需技術(shù)維護(hù),相關(guān)操作只需在服務(wù)器上進(jìn)行即可。數(shù)據(jù)庫使用MySQL數(shù)據(jù)庫,具有數(shù)據(jù)存儲和管理的功能,提供數(shù)據(jù)訪問。4.4系統(tǒng)功能模塊劃分聚焦搜索引擎系統(tǒng)分為前臺和后臺兩個子系統(tǒng),而后臺維護(hù)子系統(tǒng)主要包括三個模塊:天氣模塊,新聞模塊,分詞模塊。各個模塊有不同的功能,用戶登錄后可以根據(jù)需求得到不同的功能體驗(yàn),如圖4.2。圖4.3系統(tǒng)功能模塊4.4.1天氣模塊天氣信息模塊分為通過本地IP地址直接獲取本地天氣信息和通過輸入城市名查詢該城市的天氣信息。天氣信息的內(nèi)容包括:該地當(dāng)日的溫度、PM2.5、污染情況、地理位置、天氣情況、風(fēng)速、濕度、PM2.5等級、天氣發(fā)布的時間。獲取天氣信息的方式為調(diào)用百度提供的免費(fèi)天氣開放平臺接口,該平臺提供了根據(jù)IP地質(zhì)查詢IP所屬城市名、根據(jù)城市名查詢天氣、根據(jù)城市編號查詢天氣、根據(jù)城市名查詢PM2.5相關(guān)信息。我們判斷是否為城市天氣查詢的依據(jù)是:判斷用戶輸入的查詢語句中是否有“天氣”這個詞,如果有則對語句采用中科院分詞系統(tǒng)進(jìn)行分詞提取關(guān)鍵字,依個對關(guān)鍵字進(jìn)行判斷是否為城市,如果為城市則查詢該城市的天氣,如果不是城市則轉(zhuǎn)為普通分詞查詢。4.4.2業(yè)務(wù)管理模塊在新聞模塊中,主要有:頁面顯示熱搜榜,用戶根據(jù)新聞屬性分類新聞,用戶根據(jù)關(guān)鍵字查詢相關(guān)新聞、頁面根據(jù)新聞的類別顯示所屬新聞。熱搜榜的定義為當(dāng)日用戶搜索最多的新聞,在頁面上顯示九條熱搜新聞,在頁面上有“換一換”按鈕可更換當(dāng)日的其它九條熱搜新聞;分類新聞的定義為根據(jù)新聞的屬性進(jìn)行分類并顯示在頁面上,用戶可根據(jù)新聞的類別查看自己喜歡的新聞,類別種類例如:熱點(diǎn)、推薦、社會……根據(jù)關(guān)鍵字查詢相關(guān)新聞的定義為用戶可在頁面輸入自己想看的新聞從而瀏覽到自己想要的信息;頁面根據(jù)新聞的類別顯示所屬新聞的定義為不同類別的新聞被分類起來了,例如用戶想看娛樂類的新聞,只需要點(diǎn)擊娛樂一選項(xiàng)便可看到所有跟娛樂相關(guān)的新聞等等。4.4.3分詞模塊在此模塊中,分詞模塊的主要功能為查詢系統(tǒng)服務(wù)器從前臺獲取到用戶輸入的語句并對其進(jìn)行分詞提取關(guān)鍵字。此模塊是采用了中科院ictclas2013版分詞系統(tǒng),現(xiàn)在改為Nlpir漢語分詞系統(tǒng),功能上能夠中文分詞、詞性標(biāo)注、命名實(shí)體識別、用戶詞典功能等,在本模塊中,經(jīng)過對該分詞系統(tǒng)的簡化,只選取了中文分詞一功能。業(yè)務(wù)流程為:提取關(guān)鍵字后,再對關(guān)鍵字分別進(jìn)行查詢,最后對查詢出來的新聞進(jìn)行統(tǒng)計(jì)并排序返回給前臺。4.5數(shù)據(jù)庫表說明本系統(tǒng)使用的數(shù)據(jù)庫為MySQL。此次系統(tǒng)的數(shù)據(jù)庫名為sokrs。由于本系統(tǒng)主要是針對新聞來設(shè)計(jì)的,所以對新聞模塊的數(shù)據(jù)庫設(shè)計(jì)進(jìn)行主要介紹,其中新聞模塊數(shù)據(jù)庫的物理設(shè)計(jì)如下圖4.4所示:圖4.4物理設(shè)計(jì)圖其中,day_news(每日熱點(diǎn)新聞)表的設(shè)計(jì)如表4-1所示。表4-1day_news表的設(shè)計(jì)如表4-1所示:day_news_id為表的主鍵,代表的意思為新聞的ID。site_name為新聞?wù)军c(diǎn)名。day_search_id代表的意思為相同新聞的搜索ID。day_news_title代表的是新聞的標(biāo)題。day_news_summary代表的意義為新聞的內(nèi)容。day_news_avatar代表的意義為新聞的圖片網(wǎng)址。day_news_url代表的意義為新聞的網(wǎng)址。day_news_sub_url的意義為新聞的二級網(wǎng)址。day_news_pub_time代表的意義為新聞的發(fā)表時間。day_news_remark代表的意義為新聞備注。day_search(熱搜榜)表的設(shè)計(jì)如表4-2所示。表4-2day_search表的設(shè)計(jì)如表4-2所示:station_id為熱搜表的主鍵,代表的意義為新聞的ID,設(shè)計(jì)時將新聞都編了個ID。day_search_word代表的意義為新聞的標(biāo)題。day_search_date代表的意義為新聞發(fā)表的時間。day_search_frequency代表的意義為新聞的搜索的頻率。day_search_state代表的意義為新聞內(nèi)的相關(guān)數(shù)據(jù)。day_search_remark代表的意義為新聞的備注。News(新聞)表的設(shè)計(jì)如表4-3所示表4-3transfer表的設(shè)計(jì)如表4-3所示:news_id為表的主鍵。news_cat_id代表的意義為相關(guān)新聞的id。news_title代表的意義為新聞的標(biāo)題。news_summary代表的意義為新聞的內(nèi)容。news_avatar代表的意義為新聞圖片的網(wǎng)址。news_url代表的意義為新聞的主網(wǎng)址。news_sub_url代表的意義為新聞的二級網(wǎng)址。news_pub_time代表的意義為新聞的發(fā)表時間。news_remark代表的意義為新聞備注。news_site代表的意義為新聞所屬的網(wǎng)站。related_searches(相關(guān)新聞)表的設(shè)計(jì)如表4-4所示:表4-4related_searches表的設(shè)計(jì)如表4-4所示:keyword為表的主鍵,代表的意義是關(guān)鍵字。Key_keyword為表的外鍵,代表的意義是關(guān)鍵字相關(guān)的新聞。inverted_index(倒排索引)表的設(shè)計(jì)如表4-5所示:表4-5inverted_index表的設(shè)計(jì)如表4-5所示:word_id為表的主鍵,代表的意義是倒排索引的id。word代表的意義是新聞的關(guān)鍵字。document_frequency代表的意義是關(guān)鍵字所屬文檔的個數(shù)。inverted_index代表的意義是關(guān)鍵字所屬新聞的倒排索引。inverted_index_file代表的意義是關(guān)鍵字所屬的文檔。city(城市)表的設(shè)計(jì)如表4-6所示:表4-6city表的設(shè)計(jì)如表4-6所示:areaid為表的主鍵,代表的意義是城市ID。district代表的意義是城市的縣。city代表的意義是城市的區(qū)、市。province代表的意義是城市所屬的省份。document(文檔)表的設(shè)計(jì)如表4-7所示:表4-7document表的設(shè)計(jì)如表4-7所示:document_id為表的主鍵,代表的意義是文檔ID。document_title代表的意義是文檔的標(biāo)題。document_summary代表的意義是文檔的摘要。Document_avatar1與document_avatar2代表的意義是文檔圖片的網(wǎng)址。document_url代表的意義是新聞的網(wǎng)址。document_sdm代表隊(duì)意義是新聞的二級網(wǎng)址。document_tdm代表的意義是新聞的三級網(wǎng)址。document_time代表的意義是新聞的所屬的時間。document_pub_time代表的意義是新聞的發(fā)表時間。document_code代表的意義是新聞文字的編碼格式。document_remark代表的意義是新聞備注。document_site代表的意義是新聞所屬的站名。document_rdm代表的意義是新聞網(wǎng)址的后綴。document_cat代表的意義是新聞的類別。news_category(新聞類別)表的設(shè)計(jì)如表4-8所示:表4-8news_category表的設(shè)計(jì)如表4-8所示:news_cat_id代表的是新聞類別所屬的ID。news_cat代表的是新聞類別。第5章查詢系統(tǒng)編碼與實(shí)現(xiàn)聚焦搜索引擎系統(tǒng)在MyEclipse集成環(huán)境下開發(fā),結(jié)合Servlet等技術(shù)使用Java語言編程。利用三層模式開發(fā),該查詢系統(tǒng)設(shè)計(jì)流程上主要是以從頁面獲取參數(shù)開始直到從數(shù)據(jù)庫獲取數(shù)據(jù)返回給頁面結(jié)束,作為查詢系統(tǒng)的初始,根據(jù)用戶的操作需要設(shè)計(jì)了很多相對應(yīng)功能的接口供上層(表現(xiàn)層)調(diào)用。其中,根據(jù)是否從上層(表現(xiàn)層)獲取數(shù)據(jù)分為兩種接口。除此之外,根據(jù)聚焦搜索引擎系統(tǒng)中的業(yè)務(wù)流程,整合了若干類在Util類庫中,供邏輯調(diào)用。綜合的來說,根據(jù)表現(xiàn)層的需求在此層進(jìn)行邏輯判定,再調(diào)用下一層(數(shù)據(jù)訪問層)相對應(yīng)的方法查詢數(shù)據(jù)最后返回給前臺。下面將對各個功能實(shí)現(xiàn)的編碼進(jìn)行詳細(xì)的介紹。5.1天氣接口在介紹本系統(tǒng)的接口之前,我首先介紹編寫各類接口的基礎(chǔ):為了連接百度開放平臺里的各類API,我寫了一個工具方法,以后想調(diào)用相類似的API時便可輕松調(diào)用,代碼如下:publicstaticStringconnect_api(Stringurl){ DefaultHttpClienthttpclient=newDefaultHttpClient(); HttpGethttpget=newHttpGet(url); Stringbody_json=""; HttpResponseresponse=httpclient.execute(httpget); HttpEntityentity=response.getEntity(); body_json=EntityUtils.toString(entity); returnbody_json;} 根據(jù)此工具方法便可根據(jù)你API的網(wǎng)絡(luò)地址格式要求得到API提供的信息。以此作為編寫各類接口的基礎(chǔ)。在主頁面中,有一個顯示本地天氣模塊,在加載主頁面的時候自動顯示你當(dāng)?shù)氐奶鞖?,包括PM2.5值;如何獲得你當(dāng)?shù)氐牡刂肥歉鶕?jù)你客戶端訪問主頁所在的IP地址決定的,其中IP地址是從你訪問主頁時主頁向后臺發(fā)送數(shù)據(jù)的請求頭里得到的。之后就要根據(jù)你得到的IP地址訪問百度開放平臺里提供的地址API獲取當(dāng)?shù)孛?,然后根?jù)地名再次訪問百度開放品臺里提供的天氣API獲取天氣信息,因?yàn)榘俣忍峁┑腁PI中有一個就是根據(jù)你的地名獲得天氣信息,最終獲得本地天氣信息。其中獲得本地地名的代碼如下://根據(jù)ip獲取本地地址 Stringurl_area="/microservice/iplookup?ip=" +cip; StringjsonStr_area=Connect_API .connect_api(url_area) .replace("{\"errNum\":0,\"errMsg\":\"success\",\"retData\":{", "{").replace("}}","}"); JSONObjectjsonob2=JSONObject.fromObject(jsonStr_area); Stringcity=jsonob2.getString("city");//獲取城市 Stringdistrict=jsonob2.getString("district");//獲取地級市 獲得了地名之后,如之前所說根據(jù)地名再次訪問百度提供的天氣API最終才能獲得地名所在的天氣,根據(jù)地名獲取天氣信息的代碼如下://以下根據(jù)獲取的城市開始查天氣 StringBufferjson_weather=newStringBuffer(); Stringurl_weather="/microservice/weather?cityname=" +district; StringjsonStr_wt=Connect_API.connect_api(url_weather); JSONObjectjsonob_wt=JSONObject.fromObject(jsonStr_wt); Stringerrnum=jsonob_wt.getString("errNum");由于獲得了地址,所以只要訪問百度提供的PM2.5API就可得到地址所在地的PM2.5值,代碼如下://根據(jù)城市獲取PM2.5值 Stringurl_pm="/microservice/aqi?city=" +city; StringjsonStr_pm=Connect_API .connect_api(url_pm) .replace("{\"errNum\":0,\"retMsg\":\"success\",\"retData\":{", "{").replace("}}","}"); JSONObjectjsonob_pm=JSONObject.fromObject(jsonStr_pm);通過以上方法最終獲得了本地天氣信息以及PM2.5值,但是此處還需考慮到一個問題,即百度提供的天氣查詢API中不包含某些小地名的天氣,比如我查詢涪陵天氣,可能百度API無法查詢到涪陵天氣,那么我解決的辦法是,在查詢涪陵天氣并調(diào)用天氣API后判斷返回結(jié)果的狀態(tài)標(biāo)識碼,假設(shè)標(biāo)識碼為-1,即表示沒有該地區(qū)的天氣,則向上進(jìn)行市級查詢,即重慶市,假設(shè)市級也沒有則進(jìn)行省份判斷。其關(guān)鍵代碼如下://假設(shè)狀態(tài)碼為-1時,即表示沒有該地名的天氣 if(errnum.equals("-1")){ url_weather="/microservice/weather?cityname=" +city; jsonStr_wt=Connect_API .connect_api(url_weather) .replace( "{\"errNum\":0,\"errMsg\":\"success\",\"retData\":{", "{").replace("}}","}"); jsonob_wt=JSONObject.fromObject(jsonStr_wt); json_weather.append("{\"flag\":\"5\",\"con\":") .append("{\"city\":").append("\"") .append(jsonob_wt.getString("city")).append("\",") .append("\"weather\":").append("\"") .append(jsonob_wt.getString("weather")).append("\",") .append("\"temp\":").append("\"") .append(jsonob_wt.getString("temp")).append("\",") .append("\"aqi\":").append("\"") .append(jsonob_pm.getString("aqi")).append("\",") .append("\"aqi_level\":").append("\"") .append(jsonob_pm.getString("level")).append("\"") .append("}}"); }else{//則向上一級市區(qū)或省份進(jìn)行天氣查詢url_weather="/microservice/weather?cityname=" +district; jsonStr_wt=jsonStr_wt.replace( "{\"errNum\":0,\"errMsg\":\"success\",\"retData\":{","{") .replace("}}","}"); jsonob_wt=JSONObject.fromObject(jsonStr_wt); json_weather.append("{\"flag\":\"5\",\"con\":") .append("{\"city\":").append("\"") .append(jsonob_wt.getString("district")).append("\",") .append("\"weather\":").append("\"") .append(jsonob_wt.getString("weather")).append("\",") .append("\"temp\":").append("\"") .append(jsonob_wt.getString("temp")).append("\",") .append("\"aqi\":").append("\"") .append(jsonob_pm.getString("aqi")).append("\",") .append("\"aqi_level\":").append("\"") .append(jsonob_pm.getString("level")).append("\"") .append("}}"); } returnjson_weather; }百度提供的API返回給我們的是json類型數(shù)據(jù),我們只要將數(shù)據(jù)的返回給前臺即可,至此,天氣相關(guān)的接口就算完成了。5.2熱搜榜接口在首頁中,有一個顯示當(dāng)日搜索熱度很高的一些新聞的模塊,我們稱之為熱搜榜。對于熱搜榜里的新聞獲取并不是從網(wǎng)上獲得,而是我們自己判斷并將它們存儲于我們的數(shù)據(jù)庫中,此接口作為上述的第二種接口(需從界面獲取數(shù)據(jù))還有一個跟天氣接口不同的是,此接口不從網(wǎng)絡(luò)平臺提供的API里獲取數(shù)據(jù),是直接從數(shù)據(jù)庫里獲取數(shù)據(jù)。所以我們只要從數(shù)據(jù)庫里獲取相關(guān)信息即可,部分關(guān)鍵代碼如下:publicStringBufferday_search(intpage)throwsSQLException{ conn=DBUtil.getConnection(false);//1.獲得跟數(shù)據(jù)庫的鏈接 sql="selectday_search_wordfromday_searchorderbyday_search.day_search_datedesclimit?,8";//2.創(chuàng)建sql語句 statement=conn.prepareStatement(sql);//3.創(chuàng)建執(zhí)行sql語句對象 statement.setInt(1,page_start); rs=statement.executeQuery(); while(rs.next()){ list.add("\""+rs.getString("day_search_word")+"\""); } json_daysearch.append("{\"msg\":\"success\",") .append("\"state\":\"1\",").append("\"data\":") .append("{\"list\":").append(list).append("}").append(",") .append("\"err\":\"0\"}"); returnjson_daysearch;}在首頁上的熱搜榜里的新聞不可能只有8條,所以我們需從主頁面獲取頁數(shù)的參數(shù)來實(shí)現(xiàn)一個翻頁的功能,在代碼中我將從數(shù)據(jù)庫里得到的數(shù)據(jù)裝進(jìn)一個集合,然而我可不能就這樣返回給前臺不然前臺將無法識別我的數(shù)據(jù),考慮到String類型的字符串比Stringbuffer字符串處理效率上慢的問題,所以在此我創(chuàng)建了一個Stringbuffer字符串以便對數(shù)據(jù)進(jìn)行處理,最終我將數(shù)據(jù)重組成json數(shù)據(jù)的格式再返回給前臺。5.3新聞分類接口 在此系統(tǒng)有個功能,那就是用戶可根據(jù)新聞類別查看相同類別的新聞,那么這里就涉及到一個新聞分類的問題,為了實(shí)現(xiàn)這個功能,我為前臺寫了一個新聞類別的接口,此接口不從前臺獲取數(shù)據(jù),只需從數(shù)據(jù)庫讀取新聞類別相關(guān)信息即可,代碼如下:publicStringBufferNews_genre()throwsSQLException{ List<String>list=newArrayList<String>(); StringBufferjson_daysearch=newStringBuffer(); Connectionconn=null; ResultSetrs=null; Stringsql=null; PreparedStatementstatement=null; try{ conn=DBUtil.getConnection(false);//1.獲得跟數(shù)據(jù)庫的鏈接 sql="selectnews_catfromnews_category";//2.創(chuàng)建sql語句 statement=conn.prepareStatement(sql);//3.創(chuàng)建執(zhí)行sql語句對象 rs=statement.executeQuery(); while(rs.next()){ list.add("\""+rs.getString("news_cat")+"\""); } json_daysearch.append("{\"msg\":\"success\",") .append("\"state\":\"1\",").append("\"data\":") .append("{\"news_cat\":").append(list).append("}") .append(",").append("\"err\":\"0\"}"); System.out.println(json_daysearch); }catch(Exceptione){ e.printStackTrace(); }finally{ DBUtil.close(conn); } returnjson_daysearch; }此段代碼就是實(shí)現(xiàn)從數(shù)據(jù)庫中獲取新聞類別功能,對獲取到的新聞類別我將他們放進(jìn)集合,以及按照之前所說的效率問題我依舊創(chuàng)建了Stringbuffer類型的字符串以便操作成json類的字符串返回給前臺,以此為之后根據(jù)新聞類別查看所屬相關(guān)新聞的功能做了基礎(chǔ)。5.4用戶反饋接口為了能更好的改進(jìn)此系統(tǒng),特增加了一個用戶反饋的模塊,因此可收集到使用這個系統(tǒng)的用戶的意見,為了實(shí)現(xiàn)這個功能,我寫了一個能從前臺獲取用戶建議,包括用戶的信息,用戶的意見,用戶的所屬地址。因?yàn)檫@三個信息都不是屬于同一類型的,所以我采用了hashmap集合來保存這些信息,最終保存到數(shù)據(jù)庫里。關(guān)鍵代碼如下:conn=DBUtil.getConnection(false);//1.獲得跟數(shù)據(jù)庫的鏈接sql="INSERTINTOfeedback(feedback_con,feedback_userinfo,feedback_device)VALUES(?,?,?)";//2.創(chuàng)建sql語句 statement=conn.prepareStatement(sql);//3.創(chuàng)建執(zhí)行sql語句對象 statement.setString(1,hashMap.get("con")); statement.setString(2,hashMap.get("userinfo")); statement.setString(3,hashMap.get("device"));在保存到數(shù)據(jù)庫的時候只需要從hashmap中選取將對應(yīng)的信息最后保存到數(shù)據(jù)庫就可以了;在此接口的實(shí)現(xiàn)中,只需要從前臺獲取到用戶在網(wǎng)頁輸入的信息并保存到數(shù)據(jù)庫即可,在此需要注意的只有代碼的編碼問題。5.5搜索熱詞排行榜接口此接口的對象是PC客戶端,功能是顯示今日搜索熱詞的排行榜,此接口不從頁面上獲取信息,只從數(shù)據(jù)庫讀取相關(guān)信息并返回給前臺,前臺可根據(jù)此信息顯示熱詞排行榜,此熱詞排行榜服務(wù)對象是系統(tǒng)后臺工作人員,其關(guān)鍵代碼如下:conn=DBUtil.getConnection(false);sql="selectexp_keyfromsearch_expwhereexp_date=CURDATE()ORDERBYexpDESCLIMIT0,10"; statement=conn.prepareStatement(sql); rs=statement.executeQuery(); while(rs.next()){ hot_order.add("\""+rs.getString("exp_key")+"\""); } hot_chart.append("{\"msg\":\"success\",") .append("\"state\":\"1\",").append("\"data\":") .append("{\"hot_charts\":").append(hot_order).append("}") .append(",").append("\"err\":\"0\"}"); 從代碼可以看出,返回給前臺的代碼依舊考慮到效率問題選用了Stringbuffer字符串,作為后面設(shè)計(jì)搜索熱詞頻率走勢圖的基礎(chǔ)。5.6搜索熱詞頻率走勢圖接口此接口的對象是PC客戶端,功能是顯示某一個熱搜詞在這一個月所查詢的次數(shù),熱搜詞是從上一個接口(熱搜詞排行榜接口)獲取,當(dāng)我們點(diǎn)擊排行榜的熱詞時,后臺獲取點(diǎn)擊的熱詞作為搜索依據(jù)到數(shù)據(jù)庫去查找近一個月的查詢次數(shù)并返回給前臺,我們便可根據(jù)這些信息繪制走勢圖以來研究用戶研究習(xí)慣,關(guān)鍵代碼如下:publicStringBufferDiagram(Stringexp_key,Stringdate)throwsSQLException{ conn=DBUtil.getConnection(false); sql="selectexpfromsearch_expwhereexp_key=?"+ "ANDTO_DAYS(exp_date)>=TO_DAYS(?)"+ "ANDTO_DAYS(exp_date)<=TO_DAYS(NOW())"; statement=conn.prepareStatement(sql); statement.setString(1,exp_key); statement.setString(2,date); rs=statement.executeQuery(); while(rs.next()){ hot_order.add("\""+rs.getString("exp")+"\""); System.out.println("exp="+rs.getString("exp")); } hot_chart.append("{\"msg\":\"success\",") .append("\"state\":\"1\",").append("\"data\":") .append("{\"dia\":").append(hot_order).append("}") .append(",").append("\"err\":\"0\"}"); returnhot_chart;}此代碼中還有一個參數(shù)date(日期),此日期的判定是根據(jù)你點(diǎn)擊熱搜詞時的當(dāng)日時間,但是既然獲取到當(dāng)日時間,卻無法獲取上一個月的今日時間,為了得到上一個月份,所以在讀取數(shù)據(jù)庫之前還需對時間進(jìn)行操作,關(guān)鍵代碼如下:publicStringBufferDiagram(Stringexp_key)throwsSQLException{ Datedt=newDate(); StringBufferdate=newStringBuffer(); SimpleDateFormatmatter1=newSimpleDateFormat("yyyy-MM-dd"); String[]time=matter1.format(dt).split("-"); intyear=Integer.parseInt(time[0]); intmonth=Integer.parseInt(time[1]); intday=Integer.parseInt(time[2]); if(month==1){ date=date.append(year-1).append("-").append("12").append("-").append(day); }else{ date=date.append(year).append("-").append(month-1).append("-").append(day); } DiagramDaoddao=newDiagramDao(); returnddao.Diagram(exp_key,date.toString()); }從代碼可以看出,我首先獲取今天的日期,然后對日期格式進(jìn)行分解提取出今天所屬的月份,得到了今天所屬月份自然就知道了上一月份,當(dāng)然還要進(jìn)行判斷,如果今天所屬月份是一月份,那么上一個月份就為十二月,因此簡單的就得到了上一個月份,最后得到了上一個月份就可去數(shù)據(jù)庫查詢上一個月的今天到這一個月的今天的所有數(shù)據(jù)。5.7日志系統(tǒng) 為了更好的對程序進(jìn)行改進(jìn)以及對客戶需求的把握,我們設(shè)計(jì)了一個日志系統(tǒng),記錄用戶在輸入框輸入的語句用來了解用戶每一天的訪問情況以及用戶最需要什么,其過程并不難,只是單純的記錄到日志系統(tǒng)中,其代碼如下:publicvoidwrite_log(StringsInput)throwsSQLException{ Connectionconn=null; Stringsql=null; PreparedStatementstatement=null; try{ conn=DBUtil.getConnection(false); sql="INSERTINTOsearch_log(search_key)VALUES(?)"; statement=conn.prepareStatement(sql); statement.setString(1,sInput); statement.execute(); mit(); }catch(Exceptione){ e.printStackTrace(); }finally{ DBUtil.close(conn); } }5.8緩存系統(tǒng) 與日志系統(tǒng)不一樣的是,此緩存系統(tǒng)的目的意在為了加快用戶搜索速度以及更快速的顯示結(jié)果,我們設(shè)計(jì)了一個緩存系統(tǒng),當(dāng)用戶第一次輸入一個關(guān)鍵字并查詢到結(jié)果后,我們將結(jié)果保存到緩存系統(tǒng)中,當(dāng)用戶第二次再查詢時,我們便將上次保存到緩存系統(tǒng)中的結(jié)果返回給用戶,這樣避免了再次查詢從而減慢了查詢速度,增加了用戶的查詢體驗(yàn)。與日志系統(tǒng)相同的是,此功能是將寫入到系統(tǒng)中的,其關(guān)鍵代碼如下:publicvoidwrite_cache(Stringcacheword,Stringdocid)throwsSQLException{ Connectionconn=null; Stringsql=null; PreparedStatementstatement=null; try{ conn=DBUtil.getConnection(false); sql="INSERTINTOcache_sys(cache_keyword,cache_result)VALUES(?,?)"; statement=conn.prepareStatement(sql); statement.setString(1,cacheword); statement.setString(2,docid); statement.execute(); mit(); }catch(Exceptione){ e.printStackTrace(); }finally{ DBUtil.close(conn); } }5.9普通搜索 在主頁面上有個輸入框,用戶可在輸入框輸入自己想搜索的語句并得到相關(guān)信息,此模塊作為此系統(tǒng)的核心,在用戶輸入語句時要考慮到很多種情況,例如是否為天氣搜索,或者是熱搜詞搜索等等一系列的判斷,將在這里進(jìn)行詳細(xì)分析。 在所有的操作之前,首先我要介紹一個分詞系統(tǒng),此分詞系統(tǒng)能將一段語句進(jìn)行內(nèi)部判斷并分割,取出關(guān)鍵字返回給工作人員,對于此次的分詞系統(tǒng),我采用的是中科院的ictclas2013分詞系統(tǒng),在系統(tǒng)的采用上,它提供了很多的方法給后臺編碼人員,對于如何提取關(guān)鍵字此處不對其深入研究,此系統(tǒng)選取了一個提取關(guān)鍵字的方法作為開發(fā)基礎(chǔ)。當(dāng)用戶在頁面的輸入框輸入語句時,我們對用戶的語句進(jìn)行判斷,首先進(jìn)行判斷的是是否為熱詞新聞,如果是熱詞新聞就對此熱詞進(jìn)行一系列的操作,如果不是熱詞則再進(jìn)行第二輪判斷,待會會講解。假如此次是熱詞新聞,將對語句進(jìn)行判斷,關(guān)鍵代碼如下:obj.write_logdao(sInput); if(obj.judge_hotkey(sInput)!=0){ out.print(Tool.return_hotkey(sInput,page)); }else{ jd_wthque(sInput,resp,req,page); } 從代碼可以看到,在進(jìn)行判斷前首先就是將用戶輸入的語句寫入日志系統(tǒng)供后臺人員研究,之后才進(jìn)行熱詞判斷,此熱詞判斷也是寫的一個方法進(jìn)行判斷,大體為到數(shù)據(jù)庫查找是否有這個熱詞,如果有則判斷為熱詞,然后調(diào)用熱搜詞方法,該方法的關(guān)鍵代碼為:ArrayList<StringBuffer>stra=newArrayList<StringBuffer>(); StringBufferstrb=newStringBuffer(); Main_Serviceobj=newMain_ServiceImpl(); StringBufferflag2=obj.query_hotkey(obj.judge_hotkey(sInput)); ArrayList<String>flag25=obj.flag_2(obj.judge_hotkey(sInput),page); 在代碼中系統(tǒng)自動調(diào)用了查詢熱詞(query_hotkey())方法,可以將該熱詞所屬的新聞信息全部得到,查詢熱詞方法有一個整數(shù)類型的新聞id參數(shù),在這之前一個關(guān)鍵的方法即為判斷熱詞(judge_hotkey())方法,此方法參數(shù)為用戶輸入的語句,是string類型。此方法的判斷依據(jù)是,如果用戶輸入的語句為熱詞,那么將去數(shù)據(jù)庫查找該熱詞所屬的新聞id,如果不為熱詞,則返回0,關(guān)鍵代碼如下:publicintjudge_hotkey(StringsInput_key)throwsSQLException{ Connectionconn=null; ResultSetrs=null; Stringsql=null; PreparedStatementstatement=null; try{ conn=DBUtil.getConnection(false); sql="selectday_search_idfromday_searchwhereday_search_wordlike?"; statement=conn.prepareStatement(sql); statement.setString(1,"%"+sInput_key+"%"); rs=statement.executeQuery(); if(rs.next()){ if(rs.getInt("day_search_id")!=0){ System.out.print
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年廣東體育職業(yè)技術(shù)學(xué)院高職單招(數(shù)學(xué))歷年真題考點(diǎn)含答案解析
- 2025年川南幼兒師范高等??茖W(xué)校高職單招職業(yè)適應(yīng)性測試歷年(2019-2024年)真題考點(diǎn)試卷含答案解析
- 2025年山東藝術(shù)設(shè)計(jì)職業(yè)學(xué)院高職單招高職單招英語2016-2024歷年頻考點(diǎn)試題含答案解析
- 2025年山東電子職業(yè)技術(shù)學(xué)院高職單招職業(yè)技能測試近5年常考版參考題庫含答案解析
- 2025年安康職業(yè)技術(shù)學(xué)院高職單招高職單招英語2016-2024歷年頻考點(diǎn)試題含答案解析
- 2025年天津工藝美術(shù)職業(yè)學(xué)院高職單招高職單招英語2016-2024歷年頻考點(diǎn)試題含答案解析
- 精神障礙治療護(hù)理
- Excel知識課件教學(xué)課件
- CAD與CAM基本知識課件
- 蘇美風(fēng)景如畫
- 醉里乾坤大壺中日月長-初中語文九年級第六單元名著導(dǎo)讀《水滸傳》整本書閱讀精讀研討課 公開課一等獎創(chuàng)新教學(xué)設(shè)計(jì)
- 小學(xué)綜合實(shí)踐活動《我的問卷我設(shè)計(jì)-綜合實(shí)踐方法指導(dǎo)課》課件
- DL∕T 5767-2018 電網(wǎng)技術(shù)改造工程工程量清單計(jì)價規(guī)范
- 03D201-4 10kV及以下變壓器室布置及變配電所常用設(shè)備構(gòu)件安裝
- 基于plc的步進(jìn)電機(jī)控制系統(tǒng)設(shè)計(jì)
- 衛(wèi)生統(tǒng)計(jì)學(xué)題庫+答案
- 帕金森病-課件
- MOOC 通信原理-南京郵電大學(xué) 中國大學(xué)慕課答案
- 煙道改造居民同意協(xié)議書
- 2023年《房屋建筑學(xué)》考試復(fù)習(xí)題庫大全(含答案)
- 征地拆遷培訓(xùn)班課件
評論
0/150
提交評論