一、Lucene基本介紹:
基本信息:Lucene 是 Apache 軟件基金會的一個開放源代碼的全文檢索引擎工具包,是一個全文檢索引擎的架構(gòu),提供了完整的查詢引擎和索引引擎,部分文本分析引擎。Lucene 的目的是為軟件開發(fā)人員提供一個簡單易用的工具包,以方便的在目標系統(tǒng)中實現(xiàn)全文檢索的功能,或者是以此為基礎(chǔ)建立起完整的全文檢索引擎。
文件結(jié)構(gòu):自上而下樹形展開,一對多。
索引Index:相當(dāng)于庫或者表。
段Segment:相當(dāng)于分庫或者分表。
文檔Document:相當(dāng)一條數(shù)據(jù) ,如小說吞噬星空
域Field:一片文檔可以分為多個域,相當(dāng)于字段,如:小說作者,標題,內(nèi)容。。。
詞元Term:一個域又可以分為多個詞元,詞元是做引搜索的最小單位,標準分詞下得詞元是一個個單詞和漢字。
正向信息:
索引->段->文檔->域->詞
反向信息:
詞->文檔?!?/p>
二、Lucene全文檢索:
1、數(shù)據(jù)分類:
結(jié)構(gòu)化數(shù)據(jù):數(shù)據(jù)庫,固定長度和格式的數(shù)據(jù)。
半結(jié)構(gòu)化數(shù)據(jù):如xml,html,等..。
非結(jié)構(gòu)化數(shù)據(jù):長度和格式都不固定的數(shù)據(jù),如文本...
2、檢索過程:Luncene檢索過程可以分為兩個部分,一個部分是上圖左側(cè)結(jié)構(gòu)化,半結(jié)構(gòu)化,非結(jié)構(gòu)化數(shù)據(jù)的索引建立過程,另一部分是右側(cè)索引查詢過程。
索引過程:
有一系列被索引文件
被索引文件經(jīng)過語法分析和語言處理形成一系列詞(Term)。
經(jīng)過索引創(chuàng)建形成詞典和反向索引表。
通過索引存儲將索引寫入硬盤/內(nèi)存。
搜索過程:
用戶輸入查詢關(guān)鍵字。
對查詢語句經(jīng)過語法分析和語言分析得到一系列詞(Term)。
通過語法分析得到一個查詢樹。
通過索引存儲將索引讀入到內(nèi)存。
利用查詢樹搜索索引,從而得到每個詞(Term)的文檔鏈表,對文檔鏈表進行交,差,并得到結(jié)果文檔。
將搜索到的結(jié)果文檔對查詢的相關(guān)性進行排序。
返回查詢結(jié)果給用戶。
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動安全 [無線安全]玩轉(zhuǎn)無線電——不安全的藍牙鎖 2017-07-26
- 消息隊列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標分割】 2017-07-26
- 詞向量-LRWE模型-更好地識別反義詞同義詞 2017-07-26
- 從棧不平衡問題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實現(xiàn)JSON轉(zhuǎn)Model - HandyJSON使用講解 2017-07-26
- 阿里移動安全 Android端惡意鎖屏勒索應(yīng)用分析 2017-07-26
- 集合結(jié)合數(shù)據(jù)結(jié)構(gòu)來看看(二) 2017-07-26