全文檢索及l(fā)ucene原理使用總結_第1頁
全文檢索及l(fā)ucene原理使用總結_第2頁
全文檢索及l(fā)ucene原理使用總結_第3頁
全文檢索及l(fā)ucene原理使用總結_第4頁
全文檢索及l(fā)ucene原理使用總結_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

全文檢索及Lucence

全文檢索是計算機程序通過掃描文章中的每一個詞,對每一個詞建立一個索引,指明該詞在文章中出現(xiàn)的次數(shù)和位置。當用戶查詢時根據(jù)建立的索引查找,類似于通過字典的檢索字表查字的過程。全文檢索系統(tǒng)是按照全文檢索理論建立起來的用于提供全文檢索效勞的軟件系統(tǒng)。

一、全文檢索現(xiàn)狀目前常見全文檢索技術:1.百度、谷哥等專業(yè)搜索引擎系統(tǒng)。2.數(shù)據(jù)庫類型的全文檢索。3.java以Lucence為代表的全文檢索系統(tǒng)。4.php以Sphinx為代表的全文檢索系統(tǒng)。5.以TRS為代表其他語言及商業(yè)全文檢索系統(tǒng)。

專業(yè)搜索引擎專業(yè)搜索引擎提供了群眾化的全網(wǎng)的內(nèi)容搜索。優(yōu)點:使用免費,搜索便捷。缺點:過于群眾化,很多專業(yè)數(shù)據(jù)被淹沒在信息的海洋之中,不便于與應用系統(tǒng)相結合。數(shù)據(jù)庫類型全文檢索

大多數(shù)主流數(shù)據(jù)都提供全文檢索功能,如Oracle、Mysql、SqlServer等。

優(yōu)點:和數(shù)據(jù)庫整合到一塊,不需要獨立建立系統(tǒng),方便管理,使用方便。

缺點:擴展不便,索引和查詢都不夠靈活方便,會影響數(shù)據(jù)庫運行性能。Lucence開源搜索引擎核心確切的講,Lucence不是完整的搜索引擎,它只是一個開發(fā)包。

優(yōu)點:自定義索引格式,容易部署,方便擴展,提供豐富強大的查詢實現(xiàn),可以對任一可以影響到結果的功能進行定制。

缺點:還未產(chǎn)品化,還存在著一些特定場合的問題。Sphinx一種可以和Mysql配合使用的全文檢索系統(tǒng)優(yōu)點:高速、海量,算法優(yōu)秀,支持分布式,功能、接口豐富,發(fā)行版本支持多平臺。缺點:有待學習接觸。Lucence簡介基于Java的全文信息檢索工具包Lucene目前是ApacheJakarta家族中的一個開源工程,下載:///基于Java編寫,并有.NET同構產(chǎn)品以及其他語言實現(xiàn)。Lucence突出優(yōu)點〔1〕索引文件格式獨立于應用平臺?!?〕在傳統(tǒng)全文檢索引擎的倒排索引的根底上,實現(xiàn)了分塊索引〔3〕優(yōu)秀的面向對象的系統(tǒng)架構〔4〕設計了獨立于語言和文件格式的文本分析接口〔5〕已經(jīng)默認實現(xiàn)了一套強大的查詢引擎數(shù)據(jù)分類結構化數(shù)據(jù):具有固定格式或者有限長度的數(shù)據(jù)如數(shù)據(jù)庫、元數(shù)據(jù)等。非結構化數(shù)據(jù):指不固定長度或者不固定格式的數(shù)據(jù)如郵件、word文檔等。非結構化數(shù)據(jù)的另一種叫法全文數(shù)據(jù)。

搜索分類結構化數(shù)據(jù)搜索:用sql對數(shù)據(jù)庫搜索,利用操作系統(tǒng)命令對文件類型的元數(shù)據(jù)按照文件大小、擴展名、修改時間等屬性進行搜索等。對非結構化數(shù)據(jù)搜索:如操作系統(tǒng)進行文件內(nèi)容關鍵詞的檢索;再如用google百度進行的海量信息檢索。非結構化信息的檢索

順序掃描法:

特點:方便、簡單、速度慢。先索引再進行搜索法:

特點:需要先進行索引才能進行查找,查找速度快。又稱全文檢索。

全文檢索全文檢索大致分為兩個局部:索引創(chuàng)立、搜索索引。于是全文檢索就存在如下三個問題:1、索引里存著什么?2、如何創(chuàng)立索引?3、如何進行索引搜索?索引鏈表反向索引結構圖通過合并鏈表查出既包含Lucence又包含Solr的文件索引過程組織文檔將原始文檔進行分詞處理(Tokenizer)得到詞元(Token)語言組件處理(變?yōu)樾?、復?shù)變單數(shù)、動詞變原型)將得到的詞Term傳遞給索引組件:1.利用所得到的Term創(chuàng)立一個字典2.對字典進行字母排序3.合并相同詞Term成為文檔倒排(PostingList)鏈表。倒排文檔鏈表PostingList查詢索引過程用戶輸入查詢語句對查詢語句進行詞法分析語法分析及語言處理詞法:單詞和關鍵字語法分析:根據(jù)與語法規(guī)那么形成語法樹語言處理:和索引過程幾乎相同搜索索引得到符合語法樹的文檔得到查詢語句的相關性對結果排序LucenceandlearnednotHadoop語法樹

處理過的語法樹相關性與分值Lucence軟件架構①查詢②訪問③索引存儲索引④內(nèi)存存儲⑤文件系統(tǒng)⑥分析⑦語料庫用戶界面圖例

實現(xiàn)協(xié)議LucenceAPI介紹org.apache.Lucene.search搜索入口org.apache.Lucene.index索引入口org.apache.Lucene.analysis語言分析器org.apache.Lucene.queryParser查詢分析器org.apache.Lucene.document存儲結構org.apache.Lucene.store底層IO/存儲結構org.apache.Lucene.util一些公用的數(shù)據(jù)結構Lucene應用實例以搜索文本文檔(*.txt)為例假定指定目錄沒有子目錄文檔索引代碼FileindexDir=newFile(“D:\\luceneIndex〞); //此目錄用于存儲生成的索引FiledataDir=newFile(“D:\\luceneData〞); //需要建立索引的目錄〔假定其沒有子目錄〕AnalyzerluceneAnalyzer=newCJKAnalyzer();//中日韓詞法分析IndexWriterindexWriter=newIndexWriter(indexDir,luceneAnalyzer,true);File[]dataFiles=dataDir.listFiles();for(FilecurrentFile:dataFiles){ if(currentFile.isFile()&¤tFile.getName().endsWith(".txt")){ Documentdocument=newDocument(); ReadertxtReader=newFileReader(currentFile); document.add(Field.Text("path",currentFile.getCanonicalPath())); document.add(Field.Text("contents",txtReader)); indexWriter.addDocument(document); }}indexWriter.optimize();indexWriter.close();文檔查詢代碼StringqueryStr=“whichyouwant";

FileindexDir=newFile("D:\\luceneIndex");if(!indexDir.exists()){ System.out.println("TheLuceneindexisnotexist"); return;

}FSDirectorydirectory=FSDirectory.getDirectory(indexDir,false);IndexSearchersearcher=newIndexSearcher(directory);Termterm=newTerm("contents",queryStr.toLowerCase());TermQueryluceneQuery=newTermQuery(term);Hitshits=searcher.search(luceneQuery);for(inti=0;i<hits.length();i++){ Documentdocument=hits.doc(i); System.out.println("File:"+document.get("path"));}全文檢索常見問題文檔域的存儲設置分詞分析器個性化實現(xiàn)文檔檢索高亮顯示查詢過程查詢分頁、排序索引建立過程異常處理局部搜索結果搜索不到索引內(nèi)容的刪除、更新全文檢索常見問題中文分詞處理文章相關內(nèi)容計算法分布式

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論