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

基于Lucene的搜索引擎技術(shù)在綜合查詢系統(tǒng)中的應(yīng)用

2017-03-06 00:24:22]王子光王子明
軟件導(dǎo)刊 2017年1期
關(guān)鍵詞:搜索引擎

]王子光+王子明

摘要摘要:搜索引擎技術(shù)應(yīng)用廣泛。Lucene作為一個(gè)優(yōu)秀的搜索引擎開源工具包,可方便實(shí)現(xiàn)相關(guān)搜索引擎功能。介紹了Lucene搜索引擎工具包,在此基礎(chǔ)上,利用Lucene開發(fā)工具包,設(shè)計(jì)并實(shí)現(xiàn)了綜合查詢系統(tǒng)中搜索引擎功能。闡述了網(wǎng)絡(luò)爬蟲子系統(tǒng)、索引子系統(tǒng)和查詢子系統(tǒng)3個(gè)模塊功能。

關(guān)鍵詞關(guān)鍵詞:搜索引擎;網(wǎng)絡(luò)爬蟲;Lucene技術(shù);Suggestion提示

DOIDOI:10.11907/rjdk.1511256

中圖分類號(hào):TP319文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào)文章編號(hào):16727800(2017)001012603

引言

隨著互聯(lián)網(wǎng)技術(shù)的迅猛發(fā)展,形成了海量Web交互數(shù)據(jù),搜索引擎成為用戶在海量數(shù)據(jù)中獲取有用信息的重要技術(shù)手段。綜合查詢系統(tǒng)作為當(dāng)前管理信息系統(tǒng)的重要組成部分,承擔(dān)了系統(tǒng)查詢的大部分功能,是用戶進(jìn)行查詢的重要接口。綜合查詢系統(tǒng)包括快速查詢、模糊查詢、組合查詢、關(guān)聯(lián)查詢等功能,一般是用戶根據(jù)查詢要素進(jìn)行查詢,例如輸入某人的學(xué)號(hào)來查詢確切信息。但是在很多查詢場(chǎng)合,用戶往往不清楚自己所掌握的數(shù)據(jù)是哪一個(gè)查詢要素,例如只知道一個(gè)編號(hào),但是不清楚這個(gè)編號(hào)是學(xué)號(hào)還是其它編號(hào),這樣就無法根據(jù)查詢要素查詢,導(dǎo)致查詢效率大大降低。綜合查詢系統(tǒng)迫切需要一種類似搜索引擎的服務(wù)來方便用戶使用。

本文設(shè)計(jì)了一種基于Lucene的搜索引擎技術(shù)在綜合查詢系統(tǒng)的應(yīng)用方案,并詳細(xì)闡述了該方案的設(shè)計(jì)與實(shí)現(xiàn)。

1Lucene開發(fā)工具包

Lucene作為一個(gè)優(yōu)秀的搜索引擎開源工具包,可以4結(jié)語

代碼質(zhì)量問題已成為制約軟件持續(xù)發(fā)展的主要因素。代碼質(zhì)量問題包括多個(gè)方面,但特征不夠明確和統(tǒng)一,自動(dòng)檢測(cè)效果差,這些都為代碼質(zhì)量檢查增加了難度[7]。可控性作為代碼質(zhì)量評(píng)價(jià)的重要指標(biāo),越來越受到信息企業(yè)的關(guān)注[8]。它在整個(gè)產(chǎn)品線的長(zhǎng)遠(yuǎn)發(fā)展方面發(fā)揮著重要作用,有助于構(gòu)建完整的軟件產(chǎn)品“生態(tài)系統(tǒng)圈”。可控性不僅是代碼質(zhì)量理論,更需要應(yīng)用在程序編碼實(shí)踐之中。遵循可控性原則進(jìn)行方案設(shè)計(jì)和代碼實(shí)現(xiàn),可進(jìn)一步提高代碼質(zhì)量,監(jiān)督控制程序代碼修改的風(fēng)險(xiǎn),增加軟件產(chǎn)品應(yīng)對(duì)需求變化的靈活性。

2基于Lucene的搜索引擎技術(shù)實(shí)現(xiàn)2.1網(wǎng)絡(luò)爬蟲設(shè)計(jì)與實(shí)現(xiàn)

網(wǎng)絡(luò)爬蟲是通過網(wǎng)頁的鏈接地址來尋找網(wǎng)頁信息,通常從網(wǎng)站的首頁開始讀取網(wǎng)頁內(nèi)容,從中抽取網(wǎng)頁中的超鏈接地址,然后通過這些鏈接地址尋找下一個(gè)網(wǎng)頁,如此循環(huán),直到把網(wǎng)站所有的網(wǎng)頁都抓取為止[2]。搜索策略包括廣度優(yōu)先或深度優(yōu)先兩種形式。

網(wǎng)絡(luò)爬蟲根據(jù)抓取過程分為3個(gè)功能模塊:①網(wǎng)頁源文件獲取。通過獲取網(wǎng)頁的輸入流,將網(wǎng)頁源文件信息提取出來;②網(wǎng)頁超鏈接地址抽取。這個(gè)模塊就是分析網(wǎng)頁信息,抓取URL列表;③網(wǎng)頁文件寫入磁盤。這個(gè)模塊主要是將網(wǎng)頁數(shù)據(jù)寫入磁盤,然后進(jìn)行索引查詢。

2.1.1網(wǎng)頁源文件獲取

通過與指定URL鏈接,獲取網(wǎng)頁輸入流,然后逐字符把網(wǎng)頁源文件輸入到一個(gè)字符串變量中。這一部分用到Java.net包下的URL類和URLConnection類,主要代碼如下:

.1.3網(wǎng)頁源文件寫入磁盤

因?yàn)槲募荒馨ā?”等特殊字符,所以這部分要利用StringTokenizer類把每個(gè)獲得的超鏈接以“/”分隔,然后按照分隔出來的字符串依次建立相應(yīng)的文件夾。例如:www.xxx.edu.cn/english/index.asp依次創(chuàng)建www.xxx.edu.cn文件夾,然后是其子文件夾english,最后是最內(nèi)層文件夾index.asp,還要?jiǎng)?chuàng)建一個(gè)FileWriter對(duì)象把網(wǎng)頁源文件index.asp寫入到最內(nèi)層的文件夾中。

實(shí)現(xiàn)網(wǎng)絡(luò)爬蟲功能后,網(wǎng)頁數(shù)據(jù)就寫入磁盤,然后索引子系統(tǒng)要對(duì)這些網(wǎng)頁源文件進(jìn)行索引。

2.2索引子系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

由于經(jīng)過網(wǎng)絡(luò)爬蟲搜集的數(shù)據(jù)是在數(shù)據(jù)庫中存儲(chǔ)的,所以需要利用Lucene對(duì)數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行索引。有兩種方式實(shí)現(xiàn)創(chuàng)建索引:①實(shí)時(shí)索引。在信息系統(tǒng)添加數(shù)據(jù)時(shí)就為該數(shù)據(jù)添加索引;②定時(shí)創(chuàng)建索引。文件為配置時(shí)間,在指定時(shí)間創(chuàng)建索引。索引完后就可以在索引文件中進(jìn)行查詢,把結(jié)果返回給用戶。

2.2.1實(shí)時(shí)創(chuàng)建索引

實(shí)時(shí)創(chuàng)建索引是業(yè)務(wù)系統(tǒng)在增加數(shù)據(jù)時(shí)為新數(shù)據(jù)添加索引。本文設(shè)計(jì)實(shí)現(xiàn)了一個(gè)創(chuàng)建索引的公共方法createIndex,參數(shù)為新增加的數(shù)據(jù)對(duì)象。在該方法中使用Lucene搜索引擎包提供的IndexWriter對(duì)象向索引文件夾中寫入索引文件。創(chuàng)建索引時(shí)先從配置文件中讀取索引文件夾位置,判斷索引文件夾中是否存在索引文件。如果不存在則直接在索引文件中寫數(shù)據(jù),如果已經(jīng)存在,則向索引文件夾追加數(shù)據(jù)并不覆蓋原有數(shù)據(jù);然后使用addDocument方法,把要索引的數(shù)據(jù)庫字段放到Document對(duì)象的Field中。Document很像數(shù)據(jù)庫中的一條記錄,而Field更像是數(shù)據(jù)庫中的字段[3]。

2.2.2定時(shí)創(chuàng)建索引

實(shí)時(shí)創(chuàng)建索引目的是將新增數(shù)據(jù)添加到索引文件中,但此時(shí)刪除數(shù)據(jù)索引文件并不會(huì)立即更新。為了解決上述問題,可設(shè)計(jì)實(shí)現(xiàn)一個(gè)定時(shí)創(chuàng)建索引方法。為了不影響業(yè)務(wù)正常開展,一般設(shè)定為次日凌晨,在該時(shí)間為數(shù)據(jù)庫中的所有數(shù)據(jù)信息重新創(chuàng)建索引。

在Web應(yīng)用程序的web.xml配置文件中設(shè)置一個(gè)ServletContextListener,并在ServletContextListener實(shí)現(xiàn)類中創(chuàng)建一個(gè)Timer對(duì)象,調(diào)用Timer對(duì)象的schedule方法實(shí)現(xiàn)在指定時(shí)間執(zhí)行指定任務(wù)。

定時(shí)調(diào)度任務(wù)需實(shí)現(xiàn)一個(gè)方法,該方法繼承java.util.TimerTask類。從配置文件中讀取指定時(shí)間,設(shè)定兩個(gè)配置項(xiàng),一個(gè)是索引文件夾路徑,一個(gè)是任務(wù)指定執(zhí)行時(shí)間。通過JDom技術(shù)讀取配置文件中的信息。由于ServletContextListener在整個(gè)Web應(yīng)用程序中都存在,這樣就實(shí)現(xiàn)了定時(shí)創(chuàng)建索引的功能。

創(chuàng)建完索引后,就可在索引文件中查找用戶關(guān)注的信息,將用戶查詢結(jié)果返回給客戶端。

2.3查詢子系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

前臺(tái)實(shí)現(xiàn)參照Google搜索引擎的Suggestion提示,通過Ajax技術(shù)與后臺(tái)動(dòng)態(tài)交互數(shù)據(jù),并利用JQuery的Autocomplete 插件實(shí)現(xiàn)類似Google輸入框中動(dòng)態(tài)顯示搜索詞組下拉列表功能。搜索語句代碼如下:

參考文獻(xiàn):

[1]郎小偉,王申康.基于Lucene的全文檢索系統(tǒng)研究與開發(fā)[J].計(jì)算機(jī)工程,2006(4):110.

[2]互動(dòng)百科,網(wǎng)絡(luò)蜘蛛[EB/OL].http://www.baike.com/wiki/網(wǎng)絡(luò)蜘蛛.

[3]李剛,宋偉,邱哲.征服Ajax十Lucene構(gòu)建搜索引擎[M].北京:人民郵電出版社,2006.

[4]成龍.Lucene搜索引擎開發(fā)進(jìn)階實(shí)戰(zhàn)[M].北京:機(jī)械工業(yè)出版社,2015.

[5]羅剛.解密搜索引擎技術(shù)實(shí)戰(zhàn)[M].北京:電子工業(yè)出版社,2014.

[6]王子光.內(nèi)蒙古移動(dòng)需求全生命周期系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].北京:北京交通大學(xué),2010.

[7]李剛.瘋狂Ajax講義[M].北京:電子工業(yè)出版社,2013.

責(zé)任編輯(責(zé)任編輯:杜能鋼)

猜你喜歡
搜索引擎
Chrome 99 Canary恢復(fù)可移除預(yù)置搜索引擎選項(xiàng)
網(wǎng)絡(luò)搜索引擎亟待規(guī)范
Nutch搜索引擎在網(wǎng)絡(luò)輿情管控中的應(yīng)用
基于Nutch的醫(yī)療搜索引擎的研究與開發(fā)
廣告主與搜索引擎的雙向博弈分析
基于Lucene搜索引擎的研究
知識(shí)漫畫
一種自反饋式元搜索系統(tǒng)的設(shè)計(jì)
搜索引擎,不止有百度與谷歌
搜索,也要“深搜熟濾”
主站蜘蛛池模板: 九九久久精品国产av片囯产区| 欧美爱爱网| 日韩在线影院| 亚洲中文精品久久久久久不卡| 精品国产成人av免费| 国产最爽的乱婬视频国语对白| 亚洲欧美成人综合| 女人18毛片一级毛片在线 | 欧美国产日本高清不卡| lhav亚洲精品| 亚洲欧州色色免费AV| 欧洲熟妇精品视频| 国产成人久久777777| 无码专区第一页| 欧美精品v欧洲精品| 国产人成网线在线播放va| 国产青青操| 男女男免费视频网站国产| 毛片卡一卡二| AV无码无在线观看免费| 精品国产成人av免费| 97在线视频免费观看| 国产成人免费视频精品一区二区| 91视频区| 72种姿势欧美久久久大黄蕉| 日本欧美一二三区色视频| aa级毛片毛片免费观看久| 99re热精品视频中文字幕不卡| 四虎成人免费毛片| 国产一区亚洲一区| 日韩精品一区二区三区免费| 一级毛片在线免费视频| 成AV人片一区二区三区久久| 青青青草国产| 欧美午夜一区| 狂欢视频在线观看不卡| 免费无码网站| 手机在线看片不卡中文字幕| 国产精品美人久久久久久AV| 久久这里只有精品2| 美女毛片在线| 国产乱人伦AV在线A| 欧美啪啪视频免码| 在线观看国产网址你懂的| 91探花国产综合在线精品| 91视频首页| 99爱在线| 国产成人亚洲无吗淙合青草| 久久婷婷国产综合尤物精品| 亚洲色精品国产一区二区三区| 狠狠色狠狠色综合久久第一次| 天天躁夜夜躁狠狠躁躁88| 亚洲美女一区| 久久男人视频| 国产专区综合另类日韩一区| 露脸国产精品自产在线播| 国产精品yjizz视频网一二区| 国产18在线播放| 中文字幕久久波多野结衣| 粗大猛烈进出高潮视频无码| 亚洲娇小与黑人巨大交| 色综合五月婷婷| 成人在线第一页| 18禁黄无遮挡免费动漫网站| 亚瑟天堂久久一区二区影院| 天堂成人在线| 精品无码一区二区三区在线视频| 午夜视频www| 国产成人综合网| 日本午夜网站| 国内丰满少妇猛烈精品播| 99福利视频导航| 国产SUV精品一区二区6| 日韩小视频在线播放| 91黄视频在线观看| 亚洲成人一区二区| 激情综合五月网| 久久永久免费人妻精品| 成人91在线| 日本成人在线不卡视频| 老色鬼久久亚洲AV综合| 国产精品漂亮美女在线观看|