Lucene入門(mén)

參考

Lucene學(xué)習(xí)總結(jié)之一:全文檢索的基本原理
Lucene就是這么簡(jiǎn)單
Lucene思維導(dǎo)圖,讓搜索引擎不再難懂

Lucene 是一個(gè)高效的棋返,基于Java 的全文檢索庫(kù)。很多檢索工具蚀苛,比如hibernate search磅甩、solr、elasticsearch都是基于它封裝彩倚、擴(kuò)展出來(lái)的筹我。

簡(jiǎn)單來(lái)說(shuō),lucene 就是一個(gè) jar 包帆离,里面包含了封裝好的各種建立倒排索引的算法代碼蔬蕊。用 Java 開(kāi)發(fā)的時(shí)候,引入 lucene jar哥谷,然后基于 lucene 的 api 去開(kāi)發(fā)岸夯。
通過(guò) lucene,我們可以將已有的數(shù)據(jù)建立索引们妥,lucene 會(huì)在本地磁盤(pán)上面猜扮,給我們組織索引的數(shù)據(jù)結(jié)構(gòu)。

目標(biāo)數(shù)據(jù)對(duì)象

全文數(shù)據(jù)(非結(jié)構(gòu)化數(shù)據(jù))

  • 結(jié)構(gòu)化數(shù)據(jù): 指具有固定格式或有限長(zhǎng)度的數(shù)據(jù)监婶,如數(shù)據(jù)庫(kù)旅赢,元數(shù)據(jù)等。
  • 非結(jié)構(gòu)化數(shù)據(jù): 指不定長(zhǎng)或無(wú)固定格式的數(shù)據(jù)惑惶,如郵件煮盼,word文檔等。
  • 半結(jié)構(gòu)化數(shù)據(jù):如XML带污,HTML等孕似,根據(jù)需要可進(jìn)行不同方式處理。

非結(jié)構(gòu)化數(shù)據(jù)又叫全文數(shù)據(jù)刮刑。

思想

全文數(shù)據(jù)的搜索主要有兩種方法

  • 順序掃描(Serial Scanning):比如grep
  • 建立索引喉祭,再對(duì)索引進(jìn)行搜索:全文檢索(Full-text Search)

搜索引擎數(shù)據(jù)的特點(diǎn):一次寫(xiě)入+基本不會(huì)修改+多次查詢(xún)。而后者也是一次索引雷绢,多次使用(即便索引也需要不少時(shí)間泛烙,但能大大降低查詢(xún)時(shí)間),所以目前商業(yè)文本搜索應(yīng)用都基于此翘紊。

使用場(chǎng)景

  • google蔽氨、百度的搜索:全網(wǎng)、利用爬蟲(chóng)
  • Lucene:網(wǎng)頁(yè)內(nèi)/文件內(nèi)

均使用倒排索引

與SQL區(qū)別,SQL搜索的缺點(diǎn)

  1. SQL只能針對(duì)數(shù)據(jù)庫(kù)表搜索鹉究,不能直接針對(duì)硬盤(pán)上的文本搜索
  2. SQL沒(méi)有相關(guān)度排名
  3. SQL搜索結(jié)果沒(méi)有關(guān)健字高亮顯示
  4. SQL需要數(shù)據(jù)庫(kù)的支持宇立,數(shù)據(jù)庫(kù)本身需要內(nèi)存開(kāi)銷(xiāo)較大
  5. SQL搜索有時(shí)較慢,尤其是數(shù)據(jù)庫(kù)不在本地時(shí)自赔,超慢
  • SQL使用的是數(shù)據(jù)庫(kù)中的內(nèi)存妈嘹,在硬盤(pán)中為DBF文件
  • Lucene中存的是一系列的二進(jìn)制壓縮文件和一些控制文件,在硬盤(pán)上绍妨,統(tǒng)稱(chēng)為索引庫(kù)

基本概念

索引庫(kù)(Index)

一個(gè)目錄一個(gè)索引庫(kù)润脸,同一文件夾中的所有的文件構(gòu)成一個(gè)Lucene索引庫(kù)。類(lèi)似數(shù)據(jù)庫(kù)的表的概念他去。

lucene的索引實(shí)例

段(Segment)

Lucene索引可能由多個(gè)子索引組成毙驯,這些子索引成為段。每一段都是完整獨(dú)立的索引灾测,能被搜索爆价。

文檔(Document)

一個(gè)索引可以包含多個(gè)段,段與段之間是獨(dú)立的媳搪,添加新文檔可以生成新的段允坚,不同的段可以合并。段是索引數(shù)據(jù)存儲(chǔ)的單元蛾号。類(lèi)似****數(shù)據(jù)庫(kù)內(nèi)的行****或者****文檔數(shù)據(jù)庫(kù)內(nèi)的文檔****的概念稠项。

域(Field)

一篇文檔包含不同類(lèi)型的信息,可以分開(kāi)索引鲜结,比如標(biāo)題展运,時(shí)間,正文精刷,作者等拗胜。類(lèi)似于****數(shù)據(jù)庫(kù)表中的字段****。

詞(Term)

詞是索引的最小單位怒允,是經(jīng)過(guò)詞法分析和語(yǔ)言處理后的字符串埂软。一個(gè)Field由一個(gè)或多個(gè)Term組成。比如標(biāo)題內(nèi)容是“hello lucene”纫事,經(jīng)過(guò)分詞之后就是“hello”勘畔,“l(fā)ucene”,這兩個(gè)單詞就是Term的內(nèi)容信息丽惶,當(dāng)關(guān)鍵字搜索“hello”或者“l(fā)ucene”的時(shí)候這個(gè)標(biāo)題就會(huì)被搜索出來(lái)炫七。

流程

Lucene檢索流程.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市钾唬,隨后出現(xiàn)的幾起案子万哪,更是在濱河造成了極大的恐慌侠驯,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,036評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件奕巍,死亡現(xiàn)場(chǎng)離奇詭異吟策,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)的止,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,046評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)檩坚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人冲杀,你說(shuō)我怎么就攤上這事效床《米茫” “怎么了权谁?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,411評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀(guān)的道長(zhǎng)憋沿。 經(jīng)常有香客問(wèn)我旺芽,道長(zhǎng),這世上最難降的妖魔是什么辐啄? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,622評(píng)論 1 293
  • 正文 為了忘掉前任采章,我火速辦了婚禮,結(jié)果婚禮上壶辜,老公的妹妹穿的比我還像新娘悯舟。我一直安慰自己,他們只是感情好砸民,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,661評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布抵怎。 她就那樣靜靜地躺著,像睡著了一般岭参。 火紅的嫁衣襯著肌膚如雪反惕。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,521評(píng)論 1 304
  • 那天演侯,我揣著相機(jī)與錄音姿染,去河邊找鬼。 笑死秒际,一個(gè)胖子當(dāng)著我的面吹牛悬赏,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播娄徊,決...
    沈念sama閱讀 40,288評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼舷嗡,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了嵌莉?” 一聲冷哼從身側(cè)響起进萄,我...
    開(kāi)封第一講書(shū)人閱讀 39,200評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后中鼠,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體可婶,經(jīng)...
    沈念sama閱讀 45,644評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,837評(píng)論 3 336
  • 正文 我和宋清朗相戀三年援雇,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了矛渴。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,953評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡惫搏,死狀恐怖具温,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情筐赔,我是刑警寧澤铣猩,帶...
    沈念sama閱讀 35,673評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站茴丰,受9級(jí)特大地震影響达皿,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜贿肩,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,281評(píng)論 3 329
  • 文/蒙蒙 一峦椰、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧汰规,春花似錦汤功、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,889評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至茬射,卻和暖如春鹦蠕,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背在抛。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,011評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工钟病, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人刚梭。 一個(gè)月前我還...
    沈念sama閱讀 48,119評(píng)論 3 370
  • 正文 我出身青樓肠阱,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親朴读。 傳聞我的和親對(duì)象是個(gè)殘疾皇子屹徘,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,901評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容