Lucene基礎

簡介

Lucene是一個開放源代碼的全文檢索引擎工具包,但它不是一個完整的全文檢索引擎钠右,而是一個全文檢索引擎的架構赋元,提供了完整的查詢引擎和索引引擎。

全文檢索

數(shù)據(jù)總體分為兩種:結構化數(shù)據(jù)非結構化數(shù)據(jù)飒房。

(1)結構化數(shù)據(jù):指具有固定格式或有限長度的數(shù)據(jù)搁凸,如數(shù)據(jù)庫,元數(shù)據(jù)等狠毯。

(2)非結構化數(shù)據(jù):指不定長或無固定格式的數(shù)據(jù)护糖,如郵件,word文檔等磁盤上的文件

非結構化數(shù)據(jù)查詢方法

(1)順序掃描法(Serial Scanning): 所謂順序掃描完所有的文件嚼松,速度慢嫡良。

(2)全文檢索(Full-text Search):將非結構化數(shù)據(jù)中的一部分信息提取出來,重新組織献酗,使其變得有一定結構寝受,然后對此有一定結構的數(shù)據(jù)進行搜索,從而達到搜索相對較快的目的罕偎。這部分從非結構化數(shù)據(jù)中提取出的然后重新組織的信息很澄,我們稱之索引

這種先建立索引,再對索引進行搜索的過程就叫全文檢索(Full-text Search)甩苛。

lucene全文檢索流程

索引和搜索流程圖

創(chuàng)建索引

將用戶要搜索的文檔內容進行索引蹂楣,索引存儲在索引庫(index)中。

原始文檔

原始文檔是指要索引和搜索的內容讯蒲。原始內容包括互聯(lián)網(wǎng)上的網(wǎng)頁痊土、數(shù)據(jù)庫中的數(shù)據(jù)、磁盤上的文件等墨林。

從互聯(lián)網(wǎng)上施戴、數(shù)據(jù)庫、文件系統(tǒng)中等獲取需要搜索的原始信息萌丈,這個過程就是信息采集赞哗,信息采集的目的是為了對原始內容進行索引。在Internet上采集信息的軟件通常稱為爬蟲辆雾,肪笋,爬蟲訪問互聯(lián)網(wǎng)上的每一個網(wǎng)頁,將獲取到的網(wǎng)頁內容存儲起來度迂。

爬蟲開源軟件藤乙,Nutchjsoup惭墓, heritrix坛梁。

獲取磁盤上文件的內容,可以通過文件流來讀取文本文件的內容腊凶,對于pdf划咐、doc、xls等文件可通過第三方提供的解析工具讀取文件內容钧萍,比如Apache POI讀取doc和xls的文件內容褐缠。

文檔對象

在索引前需要將原始內容創(chuàng)建成文檔(Document),文檔中包括一個一個的域(Field)风瘦,域中存儲內容队魏。

將磁盤上的一個文件當成一個document,Document中包括一些Field万搔,每個Field由name和對應value組成胡桨,那么如file_name文件名稱、file_path文件路徑瞬雹、file_size文件大小昧谊、file_content文件內容等,value則存儲了其實際對應的值挖炬。

(1)每個Document可以有多個Field

(2)不同的Document可以有不同的Field

(3)同一個Document可以有相同的Field(域名和域值都相同)

(4)每個文檔都有一個唯一的編號揽浙,就是文檔id。

分析文檔

將原始內容創(chuàng)建為包含域(Field)的文檔(document)意敛,需要再對域中的內容進行分析馅巷,分析的過程是經(jīng)過對原始文檔提取單詞、將字母轉為小寫草姻、去除標點符號钓猬、去除停用詞等過程生成最終的語匯單元,可以將語匯單元理解為一個一個的單詞撩独,term敞曹。語匯單元

創(chuàng)建索引

對所有文檔分析得出的語匯單元進行索引,索引的目的是為了搜索综膀,最終要實現(xiàn)只搜索被索引的語匯單元從而找到Document(文檔)澳迫。

1)創(chuàng)建索引是對語匯單元索引,通過詞語找文檔剧劝,這種索引的結構叫倒排索引結構橄登。

2)傳統(tǒng)方法是根據(jù)文件找到該文件的內容,在文件內容中匹配搜索關鍵字讥此,這種方法是順序掃描方法拢锹,數(shù)據(jù)量大、搜索慢萄喳。

3)倒排索引結構是根據(jù)內容(詞語)找文檔卒稳,如下圖:

倒排索引

倒排索引結構也叫反向索引結構,包括索引和文檔兩部分他巨,索引即詞匯表充坑,它的規(guī)模較小,而文檔集合較大染突。

查詢語法

  1匪傍、基礎的查詢語法,關鍵詞查詢:

    域名+“:”+搜索的關鍵字

    例如:content:java

  2觉痛、范圍查詢

    域名+“:”+[最小值 TO 最大值]

    例如:size:[1 TO 1000]

    范圍查詢在lucene中支持數(shù)值類型役衡,不支持字符串類型。在solr中支持字符串類型薪棒。

  3手蝎、組合條件查詢

    1)+條件1 +條件2:兩個條件之間是并且的關系and

      例如:+filename:apache +content:apache

    2)+條件1 條件2:必須滿足第一個條件,應該滿足第二個條件

      例如:+filename:apache content:apache

    3)條件1 條件2:兩個條件滿足其一即可俐芯。

      例如:filename:apache content:apache

    4)-條件1 條件2:必須不滿足條件1棵介,要滿足條件2

      例如:-filename:apache content:apache

?????? 4、布爾查詢

?????????????? Occur.MUST:必須滿足此條件吧史,相當于and

  ? ? ?? Occur.SHOULD:應該滿足邮辽,但是不滿足也可以,相當于or

  ? ???? Occur.MUST_NOT:必須不滿足。相當于not

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末吨述,一起剝皮案震驚了整個濱河市岩睁,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌揣云,老刑警劉巖捕儒,帶你破解...
    沈念sama閱讀 212,383評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異邓夕,居然都是意外死亡刘莹,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,522評論 3 385
  • 文/潘曉璐 我一進店門焚刚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來点弯,“玉大人,你說我怎么就攤上這事矿咕∑牙” “怎么了?”我有些...
    開封第一講書人閱讀 157,852評論 0 348
  • 文/不壞的土叔 我叫張陵痴腌,是天一觀的道長雌团。 經(jīng)常有香客問我,道長士聪,這世上最難降的妖魔是什么锦援? 我笑而不...
    開封第一講書人閱讀 56,621評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮剥悟,結果婚禮上灵寺,老公的妹妹穿的比我還像新娘。我一直安慰自己区岗,他們只是感情好略板,可當我...
    茶點故事閱讀 65,741評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著慈缔,像睡著了一般叮称。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上藐鹤,一...
    開封第一講書人閱讀 49,929評論 1 290
  • 那天瓤檐,我揣著相機與錄音,去河邊找鬼娱节。 笑死挠蛉,一個胖子當著我的面吹牛,可吹牛的內容都是我干的肄满。 我是一名探鬼主播谴古,決...
    沈念sama閱讀 39,076評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼质涛,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了掰担?” 一聲冷哼從身側響起汇陆,我...
    開封第一講書人閱讀 37,803評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎恩敌,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體横媚,經(jīng)...
    沈念sama閱讀 44,265評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡纠炮,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,582評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了灯蝴。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片恢口。...
    茶點故事閱讀 38,716評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖穷躁,靈堂內的尸體忽然破棺而出耕肩,到底是詐尸還是另有隱情,我是刑警寧澤问潭,帶...
    沈念sama閱讀 34,395評論 4 333
  • 正文 年R本政府宣布猿诸,位于F島的核電站,受9級特大地震影響狡忙,放射性物質發(fā)生泄漏梳虽。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,039評論 3 316
  • 文/蒙蒙 一灾茁、第九天 我趴在偏房一處隱蔽的房頂上張望窜觉。 院中可真熱鬧,春花似錦北专、人聲如沸禀挫。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,798評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽语婴。三九已至,卻和暖如春驶睦,著一層夾襖步出監(jiān)牢的瞬間腻格,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,027評論 1 266
  • 我被黑心中介騙來泰國打工啥繁, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留菜职,地道東北人。 一個月前我還...
    沈念sama閱讀 46,488評論 2 361
  • 正文 我出身青樓旗闽,卻偏偏與公主長得像酬核,于是被迫代替她去往敵國和親蜜另。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,612評論 2 350

推薦閱讀更多精彩內容

  • 1. 案例分析:什么時全文檢索嫡意,如何實現(xiàn)全文檢索 ? 1.1 案例 ? 實現(xiàn)一個文件的搜索功能举瑰,通過關鍵字搜索文件...
    東方舵手閱讀 1,176評論 0 1
  • 本文我將為大家講解全文檢索技術——Lucene,現(xiàn)在這個技術用到的比較多蔬螟,我覺得大家還是應該掌握一下此迅,不說多精通,...
    呵呵兮子閱讀 829評論 0 2
  • 1. Lucene 官網(wǎng) 1). 概述 Lucene是一款高性能的旧巾、可擴展的信息檢索(IR)工具庫耸序。信息檢索是指文...
    _凌浩雨閱讀 926評論 0 1
  • 描述 我們生活中的數(shù)據(jù)總體分為兩種:結構化數(shù)據(jù)和非結構化數(shù)據(jù)結構化數(shù)據(jù):指具有固定格式或有限長度的數(shù)據(jù),如數(shù)據(jù)庫鲁猩,...
    So_ProbuING閱讀 572評論 0 1
  • Apache Lucene - Index File Formats(索引文件格式) Introduction(引...
    囧雪啥都不知道閱讀 1,889評論 0 0