《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 設(shè)計應(yīng)用 > 基于Lucene的MYSearch全文搜索引擎
基于Lucene的MYSearch全文搜索引擎
來源:微型機與應(yīng)用2010年第18期
劉亞姝,黃 岳
(北京建筑工程學(xué)院 電信學(xué)院計算機系,北京100044)
摘要: 基于Lucene開源框架設(shè)計實現(xiàn)了MYSearch全文搜索引擎。給出了MYSearch實現(xiàn)的基本原理和設(shè)計流程,以及實驗結(jié)果,并針對Lucene在中文分詞方面的不足展開了討論,給出了改進(jìn)方法。
Abstract:
Key words :

摘  要: 基于Lucene開源框架設(shè)計實現(xiàn)了MYSearch索引擎">全文搜索引擎。給出了MYSearch實現(xiàn)的基本原理和設(shè)計流程,以及實驗結(jié)果,并針對Lucene在中文分詞方面的不足展開了討論,給出了改進(jìn)方法。
關(guān)鍵詞: 全文搜索引擎;Lucence;分詞;索引

    隨著互聯(lián)網(wǎng)的飛速發(fā)展,網(wǎng)絡(luò)資源量也在迅速增加。最大的搜索引擎Google從2002年的10億網(wǎng)頁增加到現(xiàn)在近40億網(wǎng)頁;最近雅虎搜索引擎號稱收錄了45億個網(wǎng)頁;國內(nèi)的中文搜索引擎百度的中文頁面從兩年前的7 000萬頁增加到了現(xiàn)在的2億多。據(jù)估計,當(dāng)前整個互聯(lián)網(wǎng)的網(wǎng)頁數(shù)達(dá)到100多億,而且還在快速增長。用戶要在如此浩瀚的信息海洋里尋找信息,猶如“大海撈針”,往往無功而返[1]。如何從資源的海洋里找到自己需要的內(nèi)容就成了關(guān)鍵問題,搜索引擎的出現(xiàn)和研究,使網(wǎng)絡(luò)上的資源變得有序,使用戶能更加方便快捷地找到所需資源。目前被大家廣泛使用的搜索引擎如Google、百度等,其實現(xiàn)技術(shù)非常復(fù)雜,后臺數(shù)據(jù)庫也非常龐大,更新速度也很快。然而,若想搭建一個全文搜索引擎也并不是遙不可及的事情。本文主要針對Lucene介紹全文搜索引擎實現(xiàn)的各項技術(shù),并給出改進(jìn)方法。
1 Lucene基本技術(shù)原理
    目前網(wǎng)絡(luò)上有許多全文搜索引擎的開源代碼,若想構(gòu)建自己的全文搜索引擎,可以在這些開源代碼的基礎(chǔ)上進(jìn)行。其中,Lucene是比較突出的一款。Lucene不是一個完整的全文索引應(yīng)用,而是一個用Java寫的全文索引引擎工具包,因此它并不像“百度”或者“Google”那樣,可以直接作為查詢工具使用,而只是為全文搜索引擎的構(gòu)建提供了基本的工具和設(shè)計方法。Lucene提供了一系列API,能夠?qū)ξ臋n進(jìn)行預(yù)處理、過濾、分析、索引和檢索排序。本文就是在Lucene基礎(chǔ)上構(gòu)建了一個全文搜索引擎MYSearch。
2 MYSearch工作流程
2.1 搜索引擎的基本構(gòu)成

    搜索引擎系統(tǒng)一般由蜘蛛(也叫網(wǎng)頁爬行器)、切詞器、索引器、查詢器幾部分組成。蜘蛛負(fù)責(zé)網(wǎng)頁信息的抓取工作;一般情況下切詞器和索引器一起使用,它們負(fù)責(zé)將抓取的網(wǎng)頁內(nèi)容進(jìn)行切詞處理并自動進(jìn)行標(biāo)引,建立索引數(shù)據(jù)庫;查詢器根據(jù)用戶查詢條件檢索索引數(shù)據(jù)庫并對檢索結(jié)果進(jìn)行排序和集合運算,再提取網(wǎng)頁簡單摘要信息反饋給查詢用戶。
2.2 MYSearch工作流程
    MYSearch首先使用網(wǎng)絡(luò)蜘蛛抓取網(wǎng)絡(luò)上的可用網(wǎng)頁鏈接,然后把抓取到的網(wǎng)頁資源下載到本地計算機,對下載到本地計算機的網(wǎng)頁進(jìn)行初步的處理,去掉對搜索沒有意義的信息和詞匯。然后使用Lucene提供的索引功能,對處理后的信息資源建立索引,并且保存到索引數(shù)據(jù)庫中。之后,根據(jù)用戶提供的搜索信息,在索引中進(jìn)行查詢,并將搜索結(jié)果顯示到用戶搜索的界面上。其流程框圖如圖1所示。

3 MYSearch實現(xiàn)
3.1 系統(tǒng)功能模塊的劃分

    MYSearch全文搜索系統(tǒng)主要分為網(wǎng)絡(luò)蜘蛛抓取、資源初步處理、建立索引、搜索以及顯示等功能模塊。
    (1)網(wǎng)絡(luò)蜘蛛抓取功能模塊:首先根據(jù)事先設(shè)定好的網(wǎng)絡(luò)入口地址和設(shè)置的搜索條件,讀取網(wǎng)頁的內(nèi)容,分析網(wǎng)頁中其他的鏈接地址,然后垂直鏈接到下一個網(wǎng)頁,這樣一直循環(huán),直到網(wǎng)站的所有網(wǎng)頁都抓取完成或者滿足了搜索的條件為止。
    (2)資源初步處理功能模塊:將搜索來的網(wǎng)頁中的信息進(jìn)行相關(guān)處理,去掉沒有用的格式內(nèi)容和其他對搜索結(jié)果沒有實際意義的信息。
    (3)建立索引功能模塊:將處理后的網(wǎng)頁資源寫入數(shù)據(jù)庫,并使用倒排索引算法實現(xiàn)網(wǎng)頁資源索引的建立。
    (4)搜索功能模塊:根據(jù)用戶的搜索關(guān)鍵詞,在已建好索引的數(shù)據(jù)庫中,根據(jù)語素向量的匹配度和相似度進(jìn)行相關(guān)的匹配,然后按照一定的排列順序把搜索結(jié)果返回給用戶。
    (5)顯示功能模塊:將搜索結(jié)果按照一定的顯示方式顯示在頁面中,供用戶選擇和瀏覽。
3.2 MYSearch全文搜索引擎的實現(xiàn)
3.2.1 網(wǎng)絡(luò)蜘蛛

    網(wǎng)絡(luò)蜘蛛是指某個能以人類無法達(dá)到的速度不斷重復(fù)執(zhí)行某項任務(wù)的自動程序[1]。本系統(tǒng)中使用的蜘蛛程序是Nutch,核心是Crawl工具。它可以根據(jù)之前設(shè)定好的入口URL列表不斷地自動下載頁面,直到滿足系統(tǒng)預(yù)設(shè)的停止條件。圖2所示是Nutch的工作機制。

3.2.2 網(wǎng)頁初步處理
    網(wǎng)頁剛剛被抓取下來的時候,存在很多格式化的信息(如html的網(wǎng)頁標(biāo)記),還有很多多余的信息(比如“is,the,an”)。這些信息都是噪音,如果想要使搜索引擎更高效、更準(zhǔn)確地運行,就要去除這些信息,留下有效的信息。
    對于html標(biāo)記的處理,首先就是準(zhǔn)備一個空字符串,然后判斷網(wǎng)頁的文字中是否存在html的“<>”符號,如果是html“<>”的符號,就繼續(xù)判斷網(wǎng)頁中的下一個字符,如果不是就把該字符保存到這個空字符串中;如果判斷完成,就結(jié)束;否則就繼續(xù)判斷。對于多余信息,在Lucene中提供了相關(guān)的包進(jìn)行處理。
    通過上面的處理之后,下載的文件在建立索引的時候,就會更加便捷。
3.2.3 索引的建立
    在日常的生活中,往往需要快速地從海量頁面信息中定位頁面資源。這樣的需求就需要用索引技術(shù)來實現(xiàn)。索引建立的好壞直接影響搜索效果和用戶的體驗感覺,所以索引的建立方法十分重要。Lucene采用倒排索引算法建立索引[2],主要包括索引類(IndexWriter)、文檔對象類(Document)和信息字段對象類(Field)。索引建立的過程為:
    (1)建立索引器IndexWriter;
    (2)建立文檔對象Document;
    (3)建立信息字段對象Field;
    (4)將Field添加到Document;
    (5)將Document添加到IndexWriter里面;
    (6)關(guān)閉索引器IndexWriter。
    Lucene將建好的索引信息存儲在“_0.cfs”、“segments.gen”以及“segments_s”文件中。
3.2.4 信息搜索
    用戶提交的查詢請求通常是一個詞語或者短語,MYSearch搜索引擎在接受用戶訪問后會進(jìn)行一系列處理并最終向用戶提交。當(dāng)用戶輸入關(guān)鍵詞搜索后,由搜索程序從索引數(shù)據(jù)庫中找到符合該關(guān)鍵詞的所有相關(guān)文檔。因為所有文檔針對該關(guān)鍵詞的相關(guān)度早已算好,所以只需按照現(xiàn)成的相關(guān)度數(shù)值排序。排序規(guī)則是相關(guān)度越高,排名就越靠前。然后,就會把查詢到的信息返回給用戶,并進(jìn)行顯示?;静樵兞鞒倘鐖D3所示。

3.2.5 搜索結(jié)果顯示
    良好的交互設(shè)計可以使用戶的操作更加簡便,可以使用戶能夠更快更準(zhǔn)確地找到自己想要的信息,同時能夠增加用戶的滿意度。MYSearch全文搜索引擎設(shè)計了一個簡捷的搜索界面,用戶在該界面中輸入搜索條件,提交后就可以看到查詢結(jié)果。
4 改進(jìn)
    在一個搜索引擎中,搜索速度的快慢、搜索效率的高低、搜索準(zhǔn)確度的高低,很大程度上取決于分詞的優(yōu)劣。分詞就是為生成索引提供原材料,如果分詞分得不明確,則生成的索引必然復(fù)雜,那些沒有實際意義的分詞被稱為噪音,噪音多了搜索速度必然下降。Lucene其實自身是帶有中文分詞功能的,主要采用“單字切分”和“二分法”,但是由于它沒有做到確定最小索引項,因此無法去除噪音,搜索效率大大降低。
    為了改進(jìn)Lucene的中文分詞的缺陷,MYSearch全文搜索引擎采用了IK_Canalyzer中文分析器。IK_Canalyzer中文分析器實現(xiàn)了以詞典為基礎(chǔ)的正反向全切分和一級正反向最大匹配切分兩種方法。IK_Canalyzer中文分析器是第三方實現(xiàn)的分析器,繼承自Lucene的Analyzer類。圖4(a)和圖4(b)分別為采用Lucene與IK_Canalyer分詞的顯示結(jié)果,可明顯看出后者優(yōu)于前者。

    MYSearch是基于Lucene設(shè)計實現(xiàn)的一個全文搜索引擎,本文給出了設(shè)計過程以及實驗結(jié)果,并針對Lucene在中文分詞方面的不足給出了解決辦法。此外目前可以獲得的Lucene開源代碼中并沒有對PDF、Word、Excel等常用的文本格式進(jìn)行搜索。要想克服上述問題,就要對不同格式的文本進(jìn)行解析,把解析出來的文字提取出純文本,然后就像建立網(wǎng)頁的索引一樣,對提出來的文字建立索引,以便查詢。這將是進(jìn)一步需要改進(jìn)MYSearch全文搜索引擎的工作重點。
參考文獻(xiàn)
[1] 吳卓斌.基于Lucene全文搜索引擎關(guān)鍵技術(shù)的研究[D]. 廣州:暨南大學(xué),2007.
[2] 隋麗萍,徐承韜.一個中文全文檢索系統(tǒng)的設(shè)計與實現(xiàn)[J].科技資訊,2007,5(18):244-245.
[3] 張校乾,金玉玲,侯麗波.一種基于Lucene檢索引擎的全文數(shù)據(jù)庫的研究與實現(xiàn)[J].現(xiàn)代圖書情報技術(shù),2005,21(2):12-14

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
欧美与黑人午夜性猛交久久久| 在线亚洲一区观看| 日韩手机在线导航| 狠狠综合久久av一区二区小说 | 国产精品99久久久久久久久| 亚洲人成亚洲人成在线观看图片| 亚洲成人资源网| 亚洲国产福利在线| 在线观看精品| 亚洲高清毛片| 亚洲国产成人av| 亚洲精品1区2区| 亚洲精选91| 日韩写真在线| 中国女人久久久| 亚洲视频axxx| 亚洲欧美日韩一区二区三区在线| 亚洲一区精彩视频| 亚洲在线日韩| 欧美一区二区三区喷汁尤物| 欧美一区国产一区| 亚洲国产mv| 亚洲人成毛片在线播放女女| 亚洲美女在线看| 亚洲视频精品在线| 午夜一区二区三区在线观看| 欧美有码在线视频| 久久人人爽爽爽人久久久| 老牛影视一区二区三区| 欧美va天堂| 欧美片网站免费| 国产精品久久激情| 国产亚洲欧美一级| 樱花yy私人影院亚洲| 91久久夜色精品国产九色| 日韩视频在线观看国产| 亚洲私人影吧| 欧美在线播放一区二区| 亚洲激情在线视频| 亚洲视频在线观看免费| 欧美自拍偷拍午夜视频| 免费中文日韩| 欧美性一二三区| 国产日韩精品一区观看| 在线免费不卡视频| 一本色道久久综合亚洲精品不| 亚洲欧美日韩中文视频| 亚洲国产精品一区二区www在线| 亚洲精品在线看| 亚洲男人的天堂在线aⅴ视频| 久久国产天堂福利天堂| 欧美成人蜜桃| 国产精品成人一区| 黑人巨大精品欧美一区二区 | 久久久亚洲国产天美传媒修理工 | 欧美日韩国产探花| 国产日韩欧美精品一区| 亚洲国产精品第一区二区| 亚洲午夜精品久久久久久浪潮| 午夜一区二区三视频在线观看| 亚洲人成在线观看| 亚洲欧美在线x视频| 欧美1区3d| 国产精品网站在线播放| 亚洲高清在线精品| 亚洲综合清纯丝袜自拍| 亚洲免费黄色| 久久精品一区二区国产| 欧美日韩亚洲高清| 激情亚洲网站| 亚洲图片在线| 亚洲精品免费一二三区| 欧美一区观看| 欧美啪啪一区| 一区在线电影| 午夜精品福利一区二区三区av| 99精品国产福利在线观看免费| 久久国产66| 欧美性生交xxxxx久久久| 在线 亚洲欧美在线综合一区| 亚洲在线不卡| av不卡在线| 免费欧美在线| 国内精品一区二区三区| 亚洲视频在线一区观看| 日韩视频免费| 久久婷婷国产综合精品青草| 国产精品美女黄网| 亚洲精选大片| 亚洲激情六月丁香| 欧美专区在线| 国产精品老牛| 99re66热这里只有精品3直播| 亚洲国产女人aaa毛片在线| 欧美在线一级va免费观看| 欧美先锋影音| 亚洲美女中文字幕| 亚洲久久一区| 欧美99久久| 一区二区三区在线免费视频| 亚欧成人精品| 欧美一级理论性理论a| 欧美色偷偷大香| 91久久在线播放| 亚洲精品一区二区网址| 女同性一区二区三区人了人一 | 亚洲一区自拍| 国产麻豆精品视频| 夜夜嗨网站十八久久| 亚洲精品在线二区| 久久综合久久综合这里只有精品| 国产欧美日韩综合一区在线观看 | 99成人精品| 欧美成人精精品一区二区频| 国内精品久久久久影院优| 午夜免费电影一区在线观看| 亚洲欧美欧美一区二区三区| 国产精品久久二区| 亚洲图片欧美一区| 亚洲欧美乱综合| 国产精品久久久亚洲一区| 在线亚洲免费| 亚洲欧美影院| 国产欧美一区二区精品性色| 亚洲女ⅴideoshd黑人| 久久xxxx精品视频| 国产一区再线| 亚洲国产高清一区| 欧美www在线| 最新日韩欧美| 一区二区三区四区国产| 国产精品v欧美精品v日本精品动漫| aⅴ色国产欧美| 亚洲一区二区精品视频| 国产精品久久久久久久久久三级| 亚洲欧美日本国产有色| 久久久精品午夜少妇| 精品动漫3d一区二区三区| 亚洲精品少妇| 欧美视频一区在线观看| 亚洲在线国产日韩欧美| 久久九九国产| 亚洲高清资源| 亚洲午夜精品久久| 国产欧美日韩视频| 久久精品天堂| 欧美激情综合在线| 亚洲天堂男人| 久久久久久亚洲精品中文字幕| 亚洲福利久久| 亚洲影院色在线观看免费| 国产精品综合| 亚洲人成亚洲人成在线观看图片 | 国产精品免费网站在线观看| 欧美一区二区三区免费在线看| 蜜桃av一区| 99热这里只有成人精品国产| 欧美一区二区黄| 亚洲大片av| 亚洲视频精选在线| 国产亚洲综合在线| 亚洲人成网在线播放| 国产精品久久久久久妇女6080| 欧美一区二区三区视频免费| 欧美丰满少妇xxxbbb| 在线视频亚洲| 久久久久综合网| 亚洲精品老司机| 午夜精品久久久久| 伊人久久久大香线蕉综合直播| 亚洲色图自拍| 韩国成人精品a∨在线观看| 日韩一区二区精品| 国产日本欧洲亚洲| 艳女tv在线观看国产一区| 国产精品一二| 99xxxx成人网| 国产一区久久久| 亚洲香蕉成视频在线观看| 红桃视频国产一区| 亚洲一区免费视频| 在线免费观看欧美| 欧美一区二区三区播放老司机 | 一道本一区二区| 老牛嫩草一区二区三区日本| 在线午夜精品自拍| 男人天堂欧美日韩| 亚洲欧美日韩天堂| 欧美噜噜久久久xxx| 欧美一区二区三区婷婷月色 | 亚洲一区二区成人| 亚洲第一偷拍| 欧美诱惑福利视频| 一本色道久久综合亚洲91| 免费一级欧美片在线播放| 亚洲永久精品大片| 欧美日韩国内| 亚洲人成久久| 国模一区二区三区| 欧美一区二区三区视频免费播放|