1押赊,Lucene是什么
????????lucene是apache下的一個(gè)開(kāi)放源代碼的全文檢索引擎工具包(jar)
????????原理:新華字典,
2,Lucene應(yīng)用領(lǐng)域有哪些
? ??????1.????? 互聯(lián)網(wǎng)全文檢索引擎(比如百度塔淤,谷歌,必應(yīng))
????????2.????? 站內(nèi)全文檢索引擎(淘寶速妖,京東搜索功能)
????????3.????? 優(yōu)化數(shù)據(jù)庫(kù)查詢(因?yàn)閿?shù)據(jù)庫(kù)中使用like關(guān)鍵字是全表掃描也就是順序掃描算法,查詢慢)
3高蜂,數(shù)據(jù)的分類和搜索方法有哪些
? ??????結(jié)構(gòu)化數(shù)據(jù): 指具有固定格式或有限長(zhǎng)度的數(shù)據(jù),如數(shù)據(jù)庫(kù)等;
? ??????非結(jié)構(gòu)化數(shù)據(jù): 指不定長(zhǎng)或無(wú)固定格式的數(shù)據(jù), 如郵件、word 文檔中的數(shù)據(jù)等;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 運(yùn)行Lucene
1罕容,Lucene開(kāi)發(fā)環(huán)境
2备恤,使用的jar包
Lucene包:
????????lucene-core-4.10.3.jar 核心包
????????lucene-analyzers-common-4.10.3.jar 分詞包
????????lucene-queryparser-4.10.3.jar 查詢包
其它:
????????commons-io-2.4.jar
????????junit-4.9.jar
第一步:pom.xml引入依賴
3, Lucene實(shí)現(xiàn)全文檢索????
第二步:創(chuàng)建索引
1锦秒、獲得原始文檔
原始文檔:是指要索引和搜索的內(nèi)容露泊。原始內(nèi)容包括互聯(lián)網(wǎng)上的網(wǎng)頁(yè)、數(shù)據(jù)庫(kù)中的數(shù)據(jù)旅择、磁盤上的文件等惭笑。
本案例我們要獲取磁盤上文件的內(nèi)容,可以通過(guò)文件流來(lái)讀取文本文件的內(nèi)容生真,對(duì)于pdf沉噩、doc、xls等文件可通過(guò)第三方提供的解析工具讀取文件內(nèi)容柱蟀,比如Apache POI讀取doc和xls的文件內(nèi)容川蒙。
2、創(chuàng)建文檔對(duì)象
獲取原始文檔的目的是為了索引产弹,在索引前需要將原始內(nèi)容創(chuàng)建成文檔對(duì)象(Document)派歌,Document中包括一些Field(file_name文件名稱、file_path文件路徑痰哨、file_size文件大小胶果、file_content文件內(nèi)容),如下圖:
3斤斧、分析文檔(分詞)
4早抠、創(chuàng)建索引
????????索引結(jié)構(gòu):域名:詞
????????索引作用:它里面有指針指向這個(gè)詞來(lái)源的文檔
第三步:查詢索引
創(chuàng)建索引和查詢索引時(shí)所用的分詞器必須一致,如下案例中搜索關(guān)鍵字“數(shù)據(jù)結(jié)構(gòu)”:
結(jié)構(gòu)化數(shù)據(jù): 有固定格式或有限長(zhǎng)度的數(shù)據(jù)
? ??1,指定索引庫(kù)位置
2撬讽,指定查詢條件
3蕊连,查詢遍歷結(jié)果