999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Java的搜索引擎的研究與設(shè)計(jì)

2021-11-20 00:21:37陳娟
電子技術(shù)與軟件工程 2021年21期
關(guān)鍵詞:搜索引擎頁(yè)面數(shù)據(jù)庫(kù)

陳娟

(咸陽(yáng)師范學(xué)院 陜西省咸陽(yáng)市 712000)

1 序言

隨著互聯(lián)網(wǎng)的發(fā)展,信息種類越來越多,信息量越來越大,用戶想找到所需的資料簡(jiǎn)直如同大海撈針,為滿足大眾信息檢索需求的專業(yè)搜索網(wǎng)站便應(yīng)運(yùn)而生了。搜索引擎(search engine)是一個(gè)用戶通過查詢關(guān)鍵字從互聯(lián)網(wǎng)中搜索出信息的特定系統(tǒng)。搜索引擎系統(tǒng)會(huì)對(duì)互聯(lián)網(wǎng)中的所有信息資源進(jìn)行搜索、整理和分類,同時(shí)將這些信息存儲(chǔ)在網(wǎng)絡(luò)數(shù)據(jù)庫(kù)中,用戶只需在客戶端輸入查詢關(guān)鍵字,即可與數(shù)據(jù)庫(kù)中的信息進(jìn)行比對(duì),并將最終結(jié)果顯示給用戶。因此搜索引擎包含了信息搜索、信息分類、用戶查詢?nèi)糠帧D壳埃捎谥悄苁謾C(jī)的廣泛使用,搜索引擎已經(jīng)從計(jì)算機(jī)轉(zhuǎn)移到了更便于攜帶的手機(jī)上,讓用戶隨時(shí)隨地可上網(wǎng)搜索資源。

根據(jù)工作方式的不同,搜索引擎可以分為目錄索引類搜索引擎(Search Index/Directory)、全文搜索引擎(Full Text Search Engine)和元搜索引擎(Meta Search Engine)。目錄索引類搜索引擎嚴(yán)格意義上不是一個(gè)搜索引擎,它只是一個(gè)按目錄分類的網(wǎng)站鏈接列表,用戶不是依靠關(guān)鍵詞(Keywords)進(jìn)行查詢,而是根據(jù)分類目錄找到相關(guān)信息,常見的目錄索引搜索引擎如雅虎、新浪和網(wǎng)易等;全文搜索引擎是從互聯(lián)網(wǎng)中提取各個(gè)網(wǎng)站的文字信息,建立起網(wǎng)絡(luò)數(shù)據(jù)庫(kù),根據(jù)用戶輸入的查詢關(guān)鍵字檢索出相匹配的記錄并返回結(jié)果。它的數(shù)據(jù)庫(kù)是通過一個(gè)叫“網(wǎng)絡(luò)爬蟲”或“網(wǎng)絡(luò)蜘蛛”的軟件自建網(wǎng)頁(yè)數(shù)據(jù)庫(kù),搜索結(jié)果直接從自身的數(shù)據(jù)庫(kù)中調(diào)用,比如著名的Google 和百度搜索;元搜索引擎是同時(shí)在多個(gè)搜索引擎上搜索,將信息返回給用戶。本文主要通過研究全文搜索引擎相關(guān)技術(shù),設(shè)計(jì)一個(gè)基于Java 的搜索引擎系統(tǒng),系統(tǒng)采用B/S 架構(gòu),前臺(tái)頁(yè)面使用JSP 開發(fā),后臺(tái)采用Mysql 數(shù)據(jù)庫(kù)來實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ)和查詢。

2 關(guān)鍵技術(shù)

2.1 Lucene簡(jiǎn)介

Lucene 是由Apache 軟件基金會(huì)支持和提供的一個(gè)成員,它是用于全文檢索的開源程序庫(kù)。Lucene 并不是一個(gè)功能完善的搜索引擎,它其實(shí)是為開發(fā)人員提供的一個(gè)簡(jiǎn)單易用的工具包,目的是在目標(biāo)系統(tǒng)中實(shí)現(xiàn)全文檢索的功能。同時(shí),Lucene 在Java 開發(fā)環(huán)境里是一個(gè)成熟的免費(fèi)的工具包,因此,開發(fā)人員可以簡(jiǎn)單、方便的在目標(biāo)系統(tǒng)中實(shí)現(xiàn)全文檢索的功能,或者是以此為基礎(chǔ)建立起完整的全文檢索引擎,因此它是目前最受歡迎的免費(fèi)Java 信息檢索程序庫(kù)。在應(yīng)用場(chǎng)景中,對(duì)于數(shù)據(jù)量非常大的數(shù)據(jù)可采用全文檢索方式進(jìn)行搜索,比如我們熟知的百度、Google 等搜索引擎,還有在各大論壇、購(gòu)物網(wǎng)站等進(jìn)行站內(nèi)搜索時(shí)都會(huì)用到。

安裝Lucene 前需要進(jìn)行Java 使用環(huán)境的基本配置,以便確保在某個(gè)平臺(tái)下能夠運(yùn)行Java 源代碼。在Java 環(huán)境變量的Classpath中添加Lucene 的位置,比如:“D:java Lucene-1.4-finalLuncene-1.4-final.jar;”。也可以直接將Lucene-1.4-final.jar 文件放到WEBINFclasses 目錄下。

2.2 中文分詞

中文分詞是指將一個(gè)連續(xù)序列的中文語(yǔ)句切分成單獨(dú)的多個(gè)詞。對(duì)于一段用戶輸入的中文,如果能夠正確的將其切分為詞,計(jì)算機(jī)就可以準(zhǔn)確識(shí)別其語(yǔ)句含義,這就是分詞算法。現(xiàn)有的分詞算法可分為三大類:基于統(tǒng)計(jì)的分詞方法、基于理解的分詞方法以及基于字符串的分詞方法。對(duì)于搜索引擎來說,中文分詞是否準(zhǔn)確,常常直接影響到對(duì)搜索結(jié)果的相關(guān)度排序,也會(huì)導(dǎo)致最終返回的結(jié)果不同。中文分詞技術(shù)之所以會(huì)廣泛應(yīng)用在搜索引擎中是因其語(yǔ)法上的特殊性,以英文為代表的拉丁語(yǔ)系可以使用空格作為分隔符,將句子自然分割為相關(guān)單詞,而中文語(yǔ)句中詞語(yǔ)之間缺少分隔符,它的切分非常復(fù)雜,由于在現(xiàn)代漢語(yǔ)中通常是以詞語(yǔ)作為基本表達(dá)單元居多,不再使用單獨(dú)字表達(dá)相關(guān)含義。例如:“計(jì)算機(jī)技術(shù)”,基本語(yǔ)義單元為“計(jì)算機(jī)”和“技術(shù)”,如果按單字切分為“計(jì)”、“算”、“機(jī)”、“技”、“術(shù)”,則這些單字無(wú)法表達(dá)中文含義,因此不符合需求。

2.3 JSP技術(shù)

JSP 全稱Java Server Pages,是一種動(dòng)態(tài)網(wǎng)頁(yè)開發(fā)技術(shù),主要用于實(shí)現(xiàn)Java web 應(yīng)用程序的用戶界面部分。在企業(yè)開發(fā)中,前端工程師(美工)負(fù)責(zé)前端的頁(yè)面(html 文件)相關(guān)設(shè)計(jì)和美化工作,后臺(tái)的Java 代碼由Java 程序開發(fā)人員完成,要使前端和后臺(tái)相結(jié)合完成網(wǎng)頁(yè)正常運(yùn)行,后臺(tái)開發(fā)人員需要在Servlet 中使用response獲取輸出流,與前端頁(yè)面鏈接,如此會(huì)使得系統(tǒng)中的Java 代碼十分繁瑣,而且不利于前端工程師維護(hù)頁(yè)面。因此sun 公司開發(fā)出JSP 來解決這一問題,開發(fā)人員可以直接在JSP 文件中書寫HTML代碼、XHTML 代碼、XML 元素以及嵌入JSP 操作和命令,最后由Java 對(duì)應(yīng)的機(jī)制將其翻譯成相應(yīng)的Java 代碼,這樣前端工程師就可以直接在JSP 文件中對(duì)頁(yè)面進(jìn)行設(shè)計(jì)和修改,后臺(tái)開發(fā)人員也可以在JSP 頁(yè)面中添加后臺(tái)程序。

2.4 超文本傳輸協(xié)議

超文本傳輸協(xié)議(Hypertext Transfer Protocol, HTTP)是Web的基礎(chǔ)協(xié)議。超文本傳輸協(xié)議是用于從萬(wàn)維網(wǎng)服務(wù)器上傳輸超文本到本地瀏覽器,是一種簡(jiǎn)單的請(qǐng)求—響應(yīng)協(xié)議,它保證計(jì)算機(jī)能夠正確快速地傳輸超文本文檔,還能指定客戶端可以向服務(wù)器端發(fā)送哪些消息、將收到什么響應(yīng)以及所發(fā)送文檔中的哪部分內(nèi)容首先顯示。由于目前互聯(lián)網(wǎng)中使用最為廣泛的協(xié)議就是超文本傳輸協(xié)議HTTP,因此所有的WWW 文件都遵守這個(gè)標(biāo)準(zhǔn)。

2.5 MySQL數(shù)據(jù)庫(kù)

數(shù)據(jù)庫(kù)是建立在計(jì)算機(jī)存儲(chǔ)設(shè)備上的一種“倉(cāng)庫(kù)”,用于組織、存儲(chǔ)和管理各類數(shù)據(jù),數(shù)據(jù)可按照一定的數(shù)據(jù)模型來存儲(chǔ),用戶可對(duì)“倉(cāng)庫(kù)”中的數(shù)據(jù)進(jìn)行新增、修改、刪除和查詢等操作。數(shù)據(jù)庫(kù)中的數(shù)據(jù)可為多用戶共享使用,即多個(gè)用戶可以同時(shí)存取數(shù)據(jù)庫(kù)中的同一個(gè)數(shù)據(jù),而不受具體程序的限制,這不僅滿足了用戶對(duì)信息內(nèi)容的要求,同時(shí)也滿足了各用戶之間信息通信的需求。關(guān)系型數(shù)據(jù)庫(kù)是建立在關(guān)系模型基礎(chǔ)上的數(shù)據(jù)庫(kù),它使用二維表格來存儲(chǔ)大量數(shù)據(jù),本系統(tǒng)所研究的搜索引擎后臺(tái)是由MySQL 實(shí)現(xiàn),MySQL是比較受歡迎的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),可移植于各種流行的操作系統(tǒng)平臺(tái),由于Mysql 是開源的,它支持大型的數(shù)據(jù)庫(kù),使用標(biāo)準(zhǔn)的SQL數(shù)據(jù)語(yǔ)言形式,因此,MySQL數(shù)據(jù)庫(kù)應(yīng)用在大多數(shù)的系統(tǒng)中,用于后臺(tái)數(shù)據(jù)的存儲(chǔ)以及操作。

3 需求分析

全文搜索引擎可分為四個(gè)部分,分別是搜索器、索引器、檢索器和用戶界面。它的工作過程是:首先搜索器在互聯(lián)網(wǎng)中進(jìn)行搜索,發(fā)現(xiàn)和搜集網(wǎng)頁(yè)信息;接下來索引器對(duì)搜索器搜索到的信息進(jìn)行一系列的解析、整理后,提取出關(guān)鍵信息并建立索引項(xiàng),存儲(chǔ)于索引數(shù)據(jù)庫(kù)中;最后檢索器會(huì)根據(jù)用戶在用戶界面輸入的查詢關(guān)鍵字,在索引數(shù)據(jù)庫(kù)中快速檢索文檔,找到與查詢請(qǐng)求相匹配的文檔信息,然后將查詢結(jié)果按相關(guān)度排序顯示給用戶;用戶接口主要用于和用戶交互,用戶進(jìn)入搜索界面,在文本框中輸入想要查詢的關(guān)鍵字,點(diǎn)擊“搜索”,系統(tǒng)根據(jù)用戶的查詢請(qǐng)求,查詢索引表與數(shù)據(jù)庫(kù),產(chǎn)生查詢結(jié)果并按照一定的格式輸出顯示給用戶。本文所研究的全文搜索引擎系統(tǒng)應(yīng)具備以下功能:

3.1 抓取網(wǎng)頁(yè)

在互聯(lián)網(wǎng)中,URL 是每個(gè)網(wǎng)頁(yè)的入口地址,搜索引擎所采用的蜘蛛程序通過URL 來抓取網(wǎng)站頁(yè)面,然后從該頁(yè)面提取新的URL存儲(chǔ)到原始URL 列表中,最后將該原始頁(yè)面存儲(chǔ)到搜索引擎索引庫(kù)。

3.2 處理網(wǎng)頁(yè)

對(duì)于抓取到的網(wǎng)頁(yè)信息,搜索引擎還需要做一些前期預(yù)處理工作,首先是從網(wǎng)頁(yè)信息中提取出關(guān)鍵詞,這是最重要的一步,需要去除重復(fù)的網(wǎng)頁(yè)信息,使用中文分詞技術(shù)提取關(guān)鍵信息,判斷網(wǎng)頁(yè)類型,分析超鏈接,計(jì)算網(wǎng)頁(yè)的重要度和豐富度等,這些都為后期用戶檢索關(guān)鍵字以及按照相關(guān)度排序顯示查詢結(jié)果提供重要依據(jù)。

3.3 提供檢索服務(wù)

在用戶界面,當(dāng)用戶輸入關(guān)鍵詞,點(diǎn)擊“搜索”按鈕后,搜索引擎會(huì)從后臺(tái)索引數(shù)據(jù)庫(kù)中查找信息,最后將結(jié)果輸出顯示給用戶。為了使用戶能快速找到有用的網(wǎng)頁(yè)信息,除了網(wǎng)頁(yè)的URL 和標(biāo)題外,還會(huì)提供一段來自該網(wǎng)頁(yè)信息的摘要。

本系統(tǒng)在性能上應(yīng)注意以下幾點(diǎn):

(1)為了提高多用戶檢索時(shí)的檢索效率,系統(tǒng)應(yīng)采用優(yōu)化后的檢索策略和多線程并發(fā)檢索機(jī)制;

(2)系統(tǒng)應(yīng)具有高安全性,應(yīng)提供數(shù)據(jù)庫(kù)級(jí)、記錄級(jí)與字段級(jí)安全保護(hù)措施。

4 系統(tǒng)設(shè)計(jì)

根據(jù)全文搜索引擎的需求分析,本系統(tǒng)應(yīng)包含以下模塊:預(yù)處理功能,數(shù)據(jù)庫(kù)連接池部分,Web 框架與用戶界面的設(shè)計(jì)。這些不同功能的模塊在模擬搜索引擎中起著不同的作用,通過它們之間的相互配合、相互補(bǔ)充以實(shí)現(xiàn)搜索的目的。

為方便用戶使用,將用戶操作界面分為瀏覽器界面、J2ME 既模擬手機(jī)窗口界面,提供給用戶方便、美觀、實(shí)用的接口界面。爬取功能負(fù)責(zé)采集數(shù)據(jù),預(yù)處理部分負(fù)責(zé)將數(shù)據(jù)庫(kù)字典一次性加載到內(nèi)存中。數(shù)據(jù)庫(kù)連接池部分負(fù)責(zé)創(chuàng)建連接池信息,以滿足多用戶使用,多程序同時(shí)進(jìn)行。

4.1 系統(tǒng)界面設(shè)計(jì)

系統(tǒng)的客戶端界面采用Jsp 技術(shù),保證用戶界面美觀大方,方便操作,另外在頁(yè)面的布局和顯示效果方面也應(yīng)合理設(shè)計(jì),使其在性能上更加優(yōu)越,沒有操作的盲區(qū)或者明顯的不合理的地方。

4.1.1 界面的顯示問題

頁(yè)面高度、寬度合適,配色美觀,內(nèi)容位置布局合理,文字大小、顏色適當(dāng)。隨著瀏覽器,分辨率的變化,瀏覽器顯示區(qū)域的高度和分辨率顯示的高度的不同,一個(gè)頁(yè)面不夠顯示的內(nèi)容可用下拉滾動(dòng)條設(shè)置。列表頁(yè)面可以采用表格形式展示,可以根據(jù)喜好來選擇每頁(yè)顯示多少條信息,列表項(xiàng)較多時(shí)可分頁(yè)顯示。

4.1.2 頁(yè)面布局問題

頁(yè)面可采用div 塊來設(shè)計(jì),整個(gè)頁(yè)面可分為top、middle、left、right、bottom 以及footer 等部分,每部分放置不同的內(nèi)容,這種方式結(jié)構(gòu)清晰,代碼簡(jiǎn)單,便于對(duì)整個(gè)頁(yè)面布局,后期維護(hù)方便。

4.2 系統(tǒng)用戶模塊設(shè)計(jì)

用戶界面主要用于和用戶交互,包括響應(yīng)用戶的查詢檢索和記錄用戶的行為。用戶界面需要獲取用戶的查詢請(qǐng)求,提交給系統(tǒng),查詢索引表與數(shù)據(jù)庫(kù),產(chǎn)生結(jié)果并按照一定的格式輸出顯示給用戶,以及記錄日志(包括用戶查詢短語(yǔ)和查詢時(shí)間等信息)等。

在Eclipse 服務(wù)器端運(yùn)行之后, 打開瀏覽器輸入http://127.0.0.1:8080/telServer,進(jìn)入搜索初始界面,在文本框中輸入想要查詢的關(guān)鍵字。點(diǎn)擊“搜索”。根據(jù)用戶輸入的查詢關(guān)鍵字進(jìn)行搜索得出結(jié)果。搜索前應(yīng)對(duì)用戶輸入的短語(yǔ)進(jìn)行分詞處理,以此結(jié)果作為搜索關(guān)鍵字到索引表中進(jìn)行查詢。按照系統(tǒng)查詢返回的結(jié)果,根據(jù)動(dòng)態(tài)網(wǎng)頁(yè)生成技術(shù),按照一定的模版形成結(jié)果頁(yè)面輸出給用戶。

4.3 系統(tǒng)服務(wù)器模塊設(shè)計(jì)

系統(tǒng)的服務(wù)器部分主要包括兩個(gè)部分:創(chuàng)建索引和搜索模塊。

創(chuàng)建索引模塊:該部分是整個(gè)系統(tǒng)的核心,包括了解析文檔和為文檔建立索引。索引的格式獨(dú)立于運(yùn)行平臺(tái),創(chuàng)建的獨(dú)立索引塊會(huì)加速創(chuàng)建索引的速度,為所有文檔建立索引也是最終能否搜索出目標(biāo)文檔的關(guān)鍵,從而為下一步搜索做好準(zhǔn)備。

搜索模塊:該模塊的實(shí)現(xiàn)搜索功能,負(fù)責(zé)為界面模塊提供文檔地址,從而通過界面向用戶展示搜索結(jié)果。

4.4 系統(tǒng)服務(wù)器框架設(shè)計(jì)

本系統(tǒng)采用的是B/S(Browser/Server)架構(gòu),也就是瀏覽器和服務(wù)器架構(gòu)模式,這種模式是由早期的C/S(客戶機(jī)/服務(wù)器)模式改進(jìn)演變后的結(jié)構(gòu)。在B/S 架構(gòu)下,用戶只需安裝Web 瀏覽器,打開搜索主頁(yè),即可完成搜索功能。這種模式下,前端需要處理的事務(wù)非常少,大部分是數(shù)據(jù)渲染工作,后臺(tái)也就是服務(wù)器端需要處理大量的事務(wù)邏輯。在后期維護(hù)和升級(jí)時(shí),管理員也只需要在服務(wù)器端操作即可,所有的客戶端只是瀏覽器,不需要任何操作,這樣就大大簡(jiǎn)化了客戶端計(jì)算機(jī)的工作負(fù)載,減輕了系統(tǒng)維護(hù)與升級(jí)的成本和工作量。用戶在使用系統(tǒng)時(shí),僅僅需要一個(gè)瀏覽器就可運(yùn)行全部的模塊,真正達(dá)到了“零客戶端”的功能,很容易在運(yùn)行時(shí)自動(dòng)升級(jí)。

5 總結(jié)

隨著互聯(lián)網(wǎng)迅速發(fā)展至今,搜索引擎經(jīng)歷了30年的發(fā)展壯大,帶給用戶非常便利的體驗(yàn)。巨大的互聯(lián)網(wǎng)每時(shí)每刻都在產(chǎn)生著大量的信息,正因?yàn)樗阉饕娴某霈F(xiàn),才讓我們?cè)诤棋男畔⒑Q笾姓业搅宋覀兊哪繕?biāo)。科技在不斷進(jìn)步,未來的搜索引擎朝著社會(huì)化、實(shí)時(shí)化、可移動(dòng)性、個(gè)性化方向不斷發(fā)展,同時(shí)跨語(yǔ)言的搜索,基于圖片、視頻、音頻的搜索也是我們不斷研究的方向。

猜你喜歡
搜索引擎頁(yè)面數(shù)據(jù)庫(kù)
大狗熊在睡覺
刷新生活的頁(yè)面
數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)
網(wǎng)絡(luò)搜索引擎亟待規(guī)范
基于Nutch的醫(yī)療搜索引擎的研究與開發(fā)
廣告主與搜索引擎的雙向博弈分析
同一Word文檔 縱橫頁(yè)面并存
主站蜘蛛池模板: 欧洲成人在线观看| 欧美日本在线| 日韩精品一区二区深田咏美| 欧美日韩激情在线| 大学生久久香蕉国产线观看| 欧美日韩资源| 中文字幕啪啪| 国产乱子伦视频在线播放| 亚洲首页在线观看| 国产成人调教在线视频| 欧美日韩第二页| 欧美在线精品一区二区三区| 亚洲欧美日韩中文字幕在线一区| 国产精品视频a| 激情乱人伦| 亚洲区一区| 欧美一区中文字幕| 激情网址在线观看| 色综合天天视频在线观看| 国产午夜精品一区二区三区软件| 亚洲妓女综合网995久久| 伊人91在线| 五月激情综合网| 久久国产精品影院| 亚洲国产精品一区二区第一页免 | 国产一级无码不卡视频| 成人午夜在线播放| 国产色网站| 91网在线| 亚洲高清日韩heyzo| 亚洲综合久久成人AV| 欧美综合区自拍亚洲综合绿色 | 97se亚洲综合在线韩国专区福利| 精品五夜婷香蕉国产线看观看| 日韩在线影院| 国产成a人片在线播放| 波多野吉衣一区二区三区av| 亚洲制服丝袜第一页| 中文字幕永久在线看| 国产免费观看av大片的网站| 国产美女91视频| 91免费国产在线观看尤物| 国产91特黄特色A级毛片| 日韩欧美国产另类| 老熟妇喷水一区二区三区| 欧日韩在线不卡视频| 欧美精品啪啪| 毛片免费试看| 国产精品片在线观看手机版| 毛片手机在线看| 99久久亚洲精品影院| 亚洲有码在线播放| 亚洲三级a| 视频一区视频二区中文精品| 国产网站一区二区三区| 丁香五月婷婷激情基地| 伊人国产无码高清视频| 99re66精品视频在线观看 | 国产在线观看精品| lhav亚洲精品| 天堂网国产| 精品欧美一区二区三区久久久| 久996视频精品免费观看| 人妻中文字幕无码久久一区| 亚洲天堂视频网站| 中文字幕66页| 亚洲精品无码成人片在线观看| 热re99久久精品国99热| 日本一本正道综合久久dvd| 国产毛片久久国产| 成人日韩视频| 国内自拍久第一页| 成人精品在线观看| 欧美精品成人一区二区视频一| 人妻无码中文字幕一区二区三区| 亚洲精品视频免费| 亚洲精品大秀视频| 欧美国产成人在线| 久久国产精品无码hdav| 一本大道香蕉中文日本不卡高清二区| 亚洲天堂在线免费| 欧美成在线视频|