freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

畢業(yè)設(shè)計(jì)論文--桌面搜索工具的設(shè)計(jì)與實(shí)現(xiàn)(參考版)

2024-12-07 16:31本頁面
  

【正文】 。 (doc)。 //寫入 doc對象的 body域 (new Field(filepath, (),))。//傳遞 writer和文件過去進(jìn)行索引 } } } private static void indexFile(IndexWriter writer,File f)throws IOException { Document doc=new Document()。 if(()) { indexDirectory(writer,f)。i。 } private static void indexDirectory(IndexWriter writer,File dir)throws IOException { File[] files=()。//索引后結(jié)果進(jìn)行優(yōu)化 ()。 int numIndexed=()。 } IndexWriter writer=new IndexWriter(indexDir,new ChineseAnalyzer(),true)。//得到索引文件數(shù)目 長沙學(xué)院 畢業(yè)設(shè)計(jì) (論文 ) 21 long end=new Date().getTime()。 //進(jìn)行索引的文檔位置 long start=new Date().getTime()。 實(shí)現(xiàn)過程 以下給出索引純文本的關(guān)鍵實(shí)現(xiàn)部分的代碼: public static void main(String[] args) throws Exception { File indexDir=new File(indexDir)。適合于網(wǎng)頁的正文或文檔。適合于需要和搜索 結(jié)果一起被顯示出來,但用戶不會將它的值直接用于搜索的情形。適合 URL、文件路徑、日期、個人姓名等。所以在要為每一個檢索到的文本文件創(chuàng)建一個 Document實(shí)例,并在實(shí)例中添加它的域,最后把要把 Document對象添加到索引中。在此次設(shè)計(jì)中,將采用 ChineseAnalyzer進(jìn)行中分 分詞。 Lucene自帶的兩個中文分析器分別為: ChineseAnalyzer和 CJKAnalyzer。 經(jīng)過這個分析階段可以去除文本中的一些空格或者一些停止詞 (指一些很常用、但不能用來幫助區(qū)分文檔的詞 ),對中文則可以切分成有意義的詞組。 RAMDirectory 可以應(yīng)用在 快速訪問 索引的情況,不管是索引或搜索。 Directory 的 還有個 子類是 RAMDirectory。 IndexWriter 然后使用 Directory 的一個具體實(shí)現(xiàn)FSDirectory,并在文件系統(tǒng)的一個目錄中創(chuàng)建索引。 2. Directory Directory 類代表一個 Lucene 索引的位置。 1. IndexWriter 這個類用于創(chuàng)建一個新的索引并且把文檔加到已有的索引中去。 利用 IndexerTest類測試索引后得到的結(jié)果,搜索內(nèi)容為 ”overview”,結(jié)果如圖 : 圖 測試搜索 HTML格式文檔 純文本索引 至此,在上述的 doc解析模塊和 html解析模塊中,都看到了對文件建立索引并寫入到doc對象的語句,在經(jīng)過 doc解析和 html解析后,可以使用 Lucene包提供的一些類方便快速的對純文本格式的文檔進(jìn)行索引,下面將詳細(xì)講述其索引的過程。 } } return ()。 case : (((Text) child).getData())。 ( )。 i++) { Node child = (i)。 for (int i = 0。 { NodeList children = ()。 } return body。 //getBody方法調(diào)用 getText方法從 HTML文檔讀取所有文本。一般來說,一個、 //HTML文檔只出現(xiàn)一個 body元素。 NodeList children = (body)。//返回文本值給調(diào)用函數(shù) } protected String getBody(Element rawDoc) 長沙學(xué)院 畢業(yè)設(shè)計(jì) (論文 ) 18 { if (rawDoc == null) { return null。 if (text != null) { title = ()。 Text text = (Text) ()。 if (() 0) { Element titleElement = ((Element) (0))。 } String title = 。} return doc。 //對 HTML文檔的路徑進(jìn)行索引、不分詞,并存儲在 filepath域中 (new Field(html_filename,(),))。 (!())) { (new Field(html_body, body,))。 長沙學(xué)院 畢業(yè)設(shè)計(jì) (論文 ) 17 //對 HTML文檔的 title進(jìn)行索引、分詞,并存儲在 html_title域中 } if ((body != null) amp。amp。這些文本也用于構(gòu)成 Lucene //的 Document的實(shí)例。 String body = getBody(rawDoc)。 //新建一個 Lucene的 Document對象,用于裝載下面索引后的信息 String title = getTitle(rawDoc)。 //調(diào)用 Jtidy的 parseDOM方法,解析 傳給 getDocument方法的 InputStream對象, //建立一個可用于遍歷的 DOM樹。 root = (is, null)。 (true)。 實(shí)現(xiàn)過程 JTidyHTMLHandler 的關(guān)鍵代碼如下: public getDocument(InputStream is ,File file) throws DocumentHandlerException //向 DocumentHandler接口的 getDocument方法中傳入一個代表 HTML文檔的 //InputStream對象,然后該 方法調(diào)用了 Jtidy的 DOM解析器,并建立了一個 //Lucene的 Document對象。 在此桌面搜索工具的 html 解析模塊中,采用 Jtidy 進(jìn)行,通過實(shí)現(xiàn) DocumentHandler接口,為 parseDOM 方法傳入一個 HTML 文檔的 InputStream對象,進(jìn)而調(diào)用了 Jtidy 類[19]。但由于網(wǎng)上大部分可用的 html 文檔都不符合規(guī)范,因此并不是所有的解析器都能對每種格式進(jìn)行很好的處理。由于建立了文檔解析框架,實(shí)現(xiàn)一個 DocumentHandler接口,用于解析 html 格式文檔。 長沙學(xué)院 畢業(yè)設(shè)計(jì) (論文 ) 15 } 單元測試 編寫測試用例 TestWord類,測試索引 D盤 doc文件夾里面的 word文檔,測試結(jié)果如圖: 圖 測試解析 DOC格式文檔 經(jīng)過索引,可以發(fā)現(xiàn)索引文件目錄下生成了三個文件,分別為: 、 deletable、segments。 } return doc。 //建立個域名為 doc_filename,把所得到的文本經(jīng)過分析并索引,得到的結(jié)果 //存儲到 doc_filename域中,供以后需要的時(shí)候查詢。 //建立個域名為 filepath,把所得到的文本經(jīng)過索引但不分詞,得到的結(jié)果存 //儲到filepath域中,供以后需要的時(shí)候查詢。 //建立個域名為 doc_body,把所得到的文本經(jīng)過分詞并索引,得到的結(jié)果存 //儲到 doc_body域中,供以后需要的時(shí)候查詢。 (().length() 0)) { Document doc = new Document()。 } if ((bodyText != null) amp。 // API僅需要這個類 WordExtractor以及該類的一個方法 //extracText(InputStream)來處理文檔,這個方法能將 Microsoft Word文檔中的 //所有文本轉(zhuǎn)換成一個字符串對象。 { String bodyText = 。 3. 庫不能提取那些已經(jīng)被刪除但仍然留在文檔中作為修訂標(biāo)記的文本,而 POI 不能。與 POI 相比,除 API 更加簡單外, API 具有這些優(yōu)點(diǎn): 1.為了 從 Word 文檔中提取文本, API 庫作了優(yōu)化,而 POI 沒有。 而在此桌面搜索工具的實(shí)現(xiàn)過程中, doc 格式的解析部分將采用 中的 API。比較常用的是 Jakarta POI 和 這兩個項(xiàng)目所創(chuàng)建的文本提取器 (text extractors)工具 [18]。 主要技術(shù)、方法 與其它文檔的格式不同, MS DOC 文檔的格式是私有的,換句話說, Microsoft 公司對這個格式進(jìn)行了保密處理,這使得其他人很難編寫應(yīng)用程序去讀寫 MS WORD 格式的文檔。 } 長沙學(xué)院 畢業(yè)設(shè)計(jì) (論文 ) 13 doc 格式解析 了解 Lucene 的用法后,可以知道它所處理的對象都是純文本數(shù)據(jù),這對于 MS DOC進(jìn)行索引顯然是行不通的,所以必須經(jīng)過一個解析過程,從 MS DOC 中 提取出文本,進(jìn)而再用 Lucene 的方法進(jìn)行索引。 //根據(jù)提取出來的文件擴(kuò)展名和屬性實(shí)例,對 DocumentHandler類進(jìn)行實(shí) //例化。 try { Class handlerClass = (handlerClassName)。 String handlerClassName = (ext)。 (dotIndex ())) { String ext = (dotIndex + 1, ())。 if ((dotIndex 0) amp。 } public Document getDocument(File file)throws FileHandlerException { String name = ()。//建立一個 Properties屬性文件 public ExtensionFileHandler(Properties props) { handlerProps = props。下面的實(shí)現(xiàn)過程將具體分析 ExtensionFileHandler 類中的方法。 圖 文檔解析處理結(jié)構(gòu)圖 從圖可以看出,此文檔解析框架的核心部分是 ExtensionFileHandler 類,每次當(dāng)FileIndexer 里實(shí)例后一個 ExtensionFileHandler 后,通過 ExtensionFileHandler 的內(nèi)部處理,分析得到每個文件的后綴名,然后從 里面匹配支持的解析格式, 長沙學(xué)院 畢業(yè)設(shè)計(jì) (論文 ) 12 并對應(yīng)出相應(yīng)的解析器。下表總結(jié)了文檔處理框架上所需 要使用的各個組件。 表 DocumentHandler接口通用的實(shí)現(xiàn)步驟 步驟 描述 InputStream 對象 將 InputStream 對象作為輸入 讀取并解析 InputStream 對象 從 InputStream 對象中提取文本 2. 生成一個 Lucene 的Document 實(shí)例 創(chuàng)建一個 Lucene 的 Document 實(shí)例 基于 InputStream 對象中提取的文本值創(chuàng)建 Lucene 的域 (Field)對象 將這些域添加到 Lucene 的 Document 對象中 返回 Lucene 的 Document 對象,交給調(diào)用程序進(jìn)行索引 在此已經(jīng)創(chuàng)建了對各種文檔的處理的基本構(gòu)架由 DocumentHandler 接口和與之配套的 DocumentHandlerException 所組成,在這個基本架構(gòu)上新增一個 FileHandler 接口和FileHandlerException。這是 個已經(jīng)被校驗(yàn)過的異常,它只是 Java中 Exception類的一個子類。例如, HTML類型的文檔通常都含有標(biāo)題,而 XML類型文檔沒有這一項(xiàng)。 public interface DocumentHandler { Document getDocument(InputStream is,File file) throws DocumentHandlerException。 import 。同時(shí), InputStream對象的使用方便,因?yàn)榭梢酝ㄟ^ (File)的構(gòu)造函數(shù)把各種 File 類型的對象轉(zhuǎn)換成 FileInputStream類型的對象。 首先
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1