亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Lucene全文檢索引擎的應(yīng)用研究

        2010-11-27 01:45:56朱雪蓮
        關(guān)鍵詞:搜索引擎引擎數(shù)據(jù)庫

        朱雪蓮

        (新疆藝術(shù)學(xué)院基礎(chǔ)部(思政部),新疆 烏魯木齊 830049)

        Lucene作為一個開放源代碼全文檢索工具包,具有優(yōu)異的索引結(jié)構(gòu)和良好的系統(tǒng)架構(gòu),不僅可以通過它來構(gòu)建具體的全文檢索應(yīng)用,而且能方便地集成到各種系統(tǒng)軟件中,本文對Lucene進行深入的研究和分析,以此為基礎(chǔ)設(shè)計實現(xiàn)了一個以商業(yè)網(wǎng)站中構(gòu)建搜索引擎的實例。

        1 全文檢索引擎Lucene

        1.1Lucene 概述

        Lucene是用Java寫的全文檢索引擎工具包,并不是一個完整的全文檢索引擎,而是一個全文檢索引擎的架構(gòu),可以提供多個應(yīng)用程序編程接口函數(shù)和數(shù)據(jù)存儲結(jié)構(gòu),并能方便地嵌入到各種應(yīng)用中,從而實現(xiàn)針對應(yīng)用的全文索引/檢索功能。

        1.2 Lucene系統(tǒng)結(jié)構(gòu)

        Lucene的系統(tǒng)結(jié)構(gòu)中運用了面向?qū)ο蟮脑O(shè)計思想,定義的索引文件格式與平臺無關(guān),并通過抽象將系統(tǒng)的核心組成部分和具體的平臺部分設(shè)計為抽象類,與具體平臺相關(guān)的部分例如文件存儲也封裝為類,經(jīng)過層層處理,形成了一個低耦合、高效率、容易二次開發(fā)的檢索引擎系統(tǒng)。系統(tǒng)結(jié)構(gòu)圖如圖1所示。

        從圖1看到Lucene系統(tǒng)是由基礎(chǔ)結(jié)構(gòu)封裝、索引核心、對外接口三大部分組成。其中索引核心部分是系統(tǒng)的重點。 Lucene中共有7個子包,每個包的具體功能見表1,核心類包主要有:org.apache.lucene.analysis;org.apache.lucene.Index;org.apache.lucene.search。

        表1 Lucene的組成結(jié)構(gòu)

        1.3 Lucene全文索引機制

        Lucene索引存儲結(jié)構(gòu)采用層次結(jié)構(gòu),主要由索引、字段、文檔、字、詞組成,在存儲正向信息時通常是按層次保存從索引到詞的包含關(guān)系,即Lucene索引文件由若干段(Segment,相當(dāng)于表)組成,每一段由若干的文檔(document,相當(dāng)于表中記錄)組成,每一個文檔由若干的域(Field,相當(dāng)于表中字段)組成,每一個域由若干的項(Term,相當(dāng)于表中數(shù)據(jù))組成;而反向信息則保存了詞典到倒排表的映射。因此,索引存儲結(jié)構(gòu)設(shè)計比較通用,輸入輸出結(jié)構(gòu)類似于數(shù)據(jù)庫中的表→記錄→字段,很多文件、數(shù)據(jù)庫等都能較為方便地映射到Lucene的索引存儲結(jié)構(gòu)/接口中。

        Lucene訪問索引的時間較快,這是因為大部分?jǐn)?shù)據(jù)庫引擎是用B樹來維護索引結(jié)構(gòu)的,更新索引時會導(dǎo)致大量的輸入和輸出操作,而通過Lucene構(gòu)建的索引文件在擴展索引時,是將新創(chuàng)建的小索引文件定期地合并到原先的大索引文件中,從而提高了索引效率。

        2 基于Lucene構(gòu)建搜索引擎的具體應(yīng)用

        在實現(xiàn)利用Lucene構(gòu)建搜索引擎的具體應(yīng)用時,以在商業(yè)網(wǎng)站中構(gòu)建一個搜索引擎為例,通過爬蟲將各大IT門戶網(wǎng)站提供的商品信息抓取下來,然后對網(wǎng)頁內(nèi)容進行數(shù)據(jù)信息抽取并轉(zhuǎn)換為統(tǒng)一格式的文本文件,并構(gòu)建專業(yè)數(shù)據(jù)庫和主題詞典,同時將詞典內(nèi)容擴充到中文分詞模塊中;中文分詞模塊對文件處理器處理生成的文本文件進行分詞處理,并提供詞元序列供索引器索引,并將索引結(jié)果保存到索引數(shù)據(jù)庫中;使用Tomcat Web服務(wù)器發(fā)布系統(tǒng)的檢索頁面,當(dāng)用戶通過Web界面輸入要查詢的關(guān)鍵詞并提交后,搜索器到索引數(shù)據(jù)庫中進行檢索,檢索到的結(jié)果經(jīng)過處理之后,作為響應(yīng)發(fā)送給用戶。系統(tǒng)結(jié)構(gòu)如圖2所示。本文將介紹與Lucene相關(guān)的設(shè)計與實現(xiàn),并利用Lucene工具包提供的類對其擴展來實現(xiàn)具體的應(yīng)用。

        首先對抓取下來的網(wǎng)頁內(nèi)容進行結(jié)構(gòu)化的抽取,并對抽取的內(nèi)容按固定格式保存、完成主題詞庫的構(gòu)建、產(chǎn)品數(shù)據(jù)庫的構(gòu)建、數(shù)據(jù)庫處理類的構(gòu)建等幾項任務(wù),為后續(xù)的索引入庫、檢索打下基礎(chǔ)。

        2.1 索引庫的建立

        在索引階段需要定義Lucene的Document格式和構(gòu)建索引的處理類。Lucene的索引庫是通過接口添加一條條索引記錄實現(xiàn)的,首先需要構(gòu)造一個Document文檔對象,確定Document的各個域,IndexWriter負(fù)責(zé)接收新加入的文檔,并寫入索引庫中。

        本實例中ProductDocument類靜態(tài)方法為一個Product對象構(gòu)建 Lucene的 Document,當(dāng)中包含了 7個 Field,分別為 identifier(產(chǎn)品 ID)、indextime(索引時間)、producturl(產(chǎn)品 URL)、category(產(chǎn)品分類)、name(產(chǎn)品名稱)、type(產(chǎn)品型號)、all。前6個 Field與數(shù)據(jù)庫中的內(nèi)容有直接的對應(yīng)關(guān)系,而 all則是將 category(產(chǎn)品分類)、name(產(chǎn)品名稱)、type(產(chǎn)品型號)拼接起來,為用戶搜索時提供一個默認(rèn)Field。具體定義如表2所示。

        表2 ProductDocument類中Field屬性配置情況

        關(guān)鍵代碼如下:

        下面的代碼是索引類的代碼,它用于向Lucene索引中添加 Document。

        在initialize方法中,初始化了一個 JE分詞的MMAnalyzer實例,然后將生成的主題詞庫添加到該實例中。addProduct方法將兩個參數(shù)Product和 id傳遞到Product-Document.bulidProductDocument方法里,然后調(diào)用IndexWriter的addDocument方法,把生成的產(chǎn)品加入到索引中。至此,數(shù)據(jù)庫與索引的建立結(jié)束。

        2.2 檢索

        Lucene的檢索接口主要由 QueryParser、IndexSearcher、Hits三個類構(gòu)成,QueryParser是查詢分析器,IndexSearcher是索引搜索器,檢索時,用戶提交檢索關(guān)鍵字,先調(diào)用Lucene的查詢分析器分析用戶提交的查詢,然后調(diào)用IndexSearcher類進行搜索;返回結(jié)果為 Hits類,通過它再訪問Document=>Field中的內(nèi)容。

        本文在深入剖析Lucene的系統(tǒng)結(jié)構(gòu)和索引機制的基礎(chǔ)上,實現(xiàn)了一個商業(yè)領(lǐng)域搜索引擎的實例,檢索的結(jié)果由結(jié)構(gòu)化的數(shù)據(jù)組成,描述針對性很強,響應(yīng)速度快、查準(zhǔn)率高。今后,將進一步增加對動態(tài)頁面的索引和語義分析來提高搜索的精度。

        [1]管建和,甘劍峰.基于Lucene全文檢索引擎的應(yīng)用研究與實現(xiàn)[J].計算機工程與設(shè)計,2007,1.28(2):489-491.

        [2]車東.在應(yīng)用中加入全文檢索功能—基于Java的全文索引引擎 Lucene簡介[EB/OL].http://www.chedong.com/tech/lucene.html.2009.03.20.

        [3]邱哲,符滔滔.開發(fā)自己的搜索引擎[M].北京:人民郵電出版社,2007.

        [4]李廣麗,劉覺夫.垂直搜索引擎的研究與實現(xiàn)[J].情報雜志,2009,10.28(10):144-147,169.

        猜你喜歡
        搜索引擎引擎數(shù)據(jù)庫
        藍谷: “涉藍”新引擎
        商周刊(2017年22期)2017-11-09 05:08:31
        數(shù)據(jù)庫
        財經(jīng)(2017年2期)2017-03-10 14:35:35
        數(shù)據(jù)庫
        財經(jīng)(2016年15期)2016-06-03 07:38:02
        數(shù)據(jù)庫
        財經(jīng)(2016年3期)2016-03-07 07:44:46
        數(shù)據(jù)庫
        財經(jīng)(2016年6期)2016-02-24 07:41:51
        網(wǎng)絡(luò)搜索引擎亟待規(guī)范
        無形的引擎
        河南電力(2015年5期)2015-06-08 06:01:46
        基于Cocos2d引擎的PuzzleGame開發(fā)
        基于Nutch的醫(yī)療搜索引擎的研究與開發(fā)
        廣告主與搜索引擎的雙向博弈分析
        日韩女同在线免费观看| 欧洲午夜视频| 无码区a∨视频体验区30秒 | 午夜无码熟熟妇丰满人妻| 91国产熟女自拍视频| 三级全黄裸体| 少妇特黄a一区二区三区| 天天插视频| 精品国产亚洲av久一区二区三区| 久久久久99精品成人片欧美 | 亚洲成aⅴ人在线观看| 国产精品麻豆A在线播放| 精品中文字幕在线不卡| 亚洲乱码国产乱码精品精| 人妻无码人妻有码中文字幕| 久久久久亚洲AV无码专区一区 | 少妇被粗大猛进进出出| 中文字幕亚洲视频一区| 丰满多毛的大隂户毛茸茸| A午夜精品福利在线| 日韩av不卡一二三区| 亚洲中文字幕在线综合| 国产亚洲日本精品无码| 最新国产拍偷乱偷精品| 国产av一区二区内射| 亚洲人成网77777色在线播放| 国产真实夫妇交换视频| 国产精品自产拍在线观看中文| 小黄片免费在线播放观看| 在线播放真实国产乱子伦| 国产午夜福利短视频| 国产美女三级视频网站| 中文字日产幕码三区的做法步| 在线欧美中文字幕农村电影| 亚洲精品有码在线观看| 在线观看播放免费视频| 体验区试看120秒啪啪免费| 国产精品福利自产拍久久| 一本色道久久综合中文字幕| 国产精品高清视亚洲乱码| 国产精品视频露脸|