溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

lucene的全文檢索是什么

發(fā)布時(shí)間:2021-12-23 09:21:34 來(lái)源:億速云 閱讀:108 作者:iii 欄目:云計(jì)算

本篇內(nèi)容介紹了“l(fā)ucene的全文檢索是什么”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

定義:Lucene 是一個(gè)高效的,基于 Java 的全文檢索庫(kù)。所以在了解 Lucene 之前要費(fèi)一番工夫了解一下全文檢索。

那么什么叫做全文檢索呢?這要從我們生活中的數(shù)據(jù)說(shuō)起。我們生活中的數(shù)據(jù)總體分為兩種:結(jié)構(gòu)化數(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 文檔等。

當(dāng)然有的地方還會(huì)提到第三種,半結(jié)構(gòu)化數(shù)據(jù),如 XML,HTML 等,當(dāng)根據(jù)需要可按結(jié)構(gòu)化數(shù)據(jù)來(lái)處理,也可抽取出純文本按非結(jié)構(gòu)化數(shù)據(jù)來(lái)處理。非結(jié)構(gòu)化數(shù)據(jù)又一種叫法叫全文數(shù)據(jù)。按照數(shù)據(jù)的分類,搜索也分為兩種:

  • 對(duì)結(jié)構(gòu)化數(shù)據(jù)的搜索:如對(duì)數(shù)據(jù)庫(kù)的搜索,用 SQL 語(yǔ)句。再如對(duì)元數(shù)據(jù)的搜索,如利用
    windows 搜索對(duì)文件名,類型,修改時(shí)間進(jìn)行搜索等。

  • 對(duì)非結(jié)構(gòu)化數(shù)據(jù)的搜索:如利用 windows 的搜索也可以搜索文件內(nèi)容,Linux 下的 grep
    命令,再如用 Google 和百度可以搜索大量?jī)?nèi)容數(shù)據(jù)。

是對(duì)非結(jié)構(gòu)化數(shù)據(jù)也即對(duì)全文數(shù)據(jù)的搜索主要有兩種方法:

  • 一種是 (Serial Scanning) 順序掃描法:所謂順序掃描,比如要找內(nèi)容包含某一個(gè)字符串的文件,就是一個(gè)文檔一個(gè)文檔的看,對(duì)于每一個(gè)文檔,從頭看到尾,如果此文檔包含此字符串,則此文檔為我們要找的文件,接著看下一個(gè)文件,直到掃描完所有的文件。如利用 windows的搜索也可以搜索文件內(nèi)容,只是相當(dāng)?shù)穆H绻阌幸粋€(gè) 80G 硬盤,如果想在上面找到一個(gè)內(nèi)容包含某字符串的文件,不花他幾個(gè)小時(shí),怕是做不到。Linux 下的 grep 命令也是這

  • 一種方式。大家可能覺(jué)得這種方法比較原始,但對(duì)于小數(shù)據(jù)量的文件,這種方法還是最直接,最方便的。但是對(duì)于大量的文件,這種方法就很慢了。有人可能會(huì)說(shuō),對(duì)非結(jié)構(gòu)化數(shù)據(jù)順序掃描很慢,對(duì)結(jié)構(gòu)化數(shù)據(jù)的搜索卻相對(duì)較快(由于結(jié)構(gòu)化數(shù)據(jù)有一定的結(jié)構(gòu)可以采取一定的搜索算法加快速度),那么把我們的非結(jié)構(gòu)化數(shù)據(jù)想辦法弄得有一定結(jié)構(gòu)不就行了嗎?這種想法很天然,卻構(gòu)成了全文檢索的基本思路,也即將非結(jié)構(gòu)化數(shù)據(jù)中的一部分信息提取出來(lái),重新組織,使其變得一定結(jié)構(gòu),然后對(duì)此有一定結(jié)構(gòu)的數(shù)據(jù)進(jìn)行搜索,從而達(dá)到搜索相對(duì)較快的目的。這部分從非結(jié)構(gòu)化數(shù)據(jù)中提取出的然后重新組織的信息,我們稱之索引索引索引。這種說(shuō)法比較抽象,舉幾個(gè)例子就很容易明白,比如字典,字典的拼音表和部首檢字表就相當(dāng)于字典的索引,對(duì)每一個(gè)字的解釋是非結(jié)構(gòu)化的,如果字典沒(méi)有音節(jié)表和部首檢字表,在茫茫辭海中找一個(gè)字只能順序掃描。然而字的某些信息可以提取出來(lái)進(jìn)行結(jié)構(gòu)化處理,比如讀音,就比較結(jié)構(gòu)化,分聲母和韻母,分別只有幾種可以一一列舉,于是將讀音拿出來(lái)按一定的順序排列,每一項(xiàng)讀音都指向此字的詳細(xì)解釋的頁(yè)數(shù)。我們搜索時(shí)按結(jié)構(gòu)化的拼音搜到讀音,然后按其指向的頁(yè)數(shù),便可找到我們的非結(jié)構(gòu)化數(shù)據(jù)——也即對(duì)字的解釋。這種先建立索引,再對(duì)索引進(jìn)行搜索的過(guò)程就叫全文檢索(Full-text Search)。下面這幅圖來(lái)自《Lucene in action》,但卻不僅僅描述了 Lucene 的檢索過(guò)程,而是描述了全文檢索的一般過(guò)程。

lucene的全文檢索是什么

全文檢索大體分兩個(gè)過(guò)程,索引創(chuàng)建(Indexing)和搜索索引(Search)。
 索引創(chuàng)建:將現(xiàn)實(shí)世界中所有的結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)提取信息,創(chuàng)建索引的過(guò)程。  
 搜索索引:就是得到用戶的查詢請(qǐng)求,搜索創(chuàng)建的索引,然后返回結(jié)果的過(guò)程。  
于是全文檢索就存在三個(gè)重要問(wèn)題:

  • 1.  索引里面究竟存些什么?(Index) 

  • 2.  如何創(chuàng)建索引?(Indexing) 

  • 3.  如何對(duì)索引進(jìn)行搜索?(Search) 

“l(fā)ucene的全文檢索是什么”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI