Lucene初識之Analyzer

來源:互聯網
上載者:User

標籤:lucene   分析器   lucene分析器   analyzer   lucene全文檢索索引   

剛接觸Lucene,雖然跑通了一個demo,但對很多東西還不瞭解。下面簡單記錄下對Analyzer的理解,以後再系統整理。後面來自Lucene官方文檔,Lucene版本為4.10.0.歡迎感興趣的同學一起學習交流,求大牛指導,我現在還有很多不明白的地方。

 包org.apache.lucene.analysis

將文本轉換為可索引和檢索的標記標記(token)。

Lucene,建索引和檢索的庫,只接受純文字。

 

文本解析(Parsing)

基於Lucene的搜尋應用可能會支援很多格式的文檔,如pdf、word、excel,xml等。Lucene不關心具體的文檔格式。應用開發人員應當提供合適的文本解析器,將不同格式的文檔轉換成純文字的形式。

 

標記化(Tokenization)

將純文字進行Lucene建索引的時候要經曆一個通常稱之為“標記化”的過程。標記化是將純文字解析成小的索引單元——標記(token)的過程。文本被解析成標記的方式,與之後的檢索過程關聯性很強。例如,句子的開頭和結尾可以被識別從而提供更精確的短語,提高搜尋結果的準確性(雖然Lucene本身不支援句子的識別)。

有時,僅僅將輸入的文本簡單的解析成標記是不夠的,可能需要進一步的分析(Analysis)。Lucene提供了前置和後置標記化分析組件。

前置標記化分析可以包括(但不限於)去HTML標記,轉換或移除文本匹配的模式或固定字串。

後置標記化有很多步驟(但不限於):

         提幹——提取詞的主幹部分,如bikes可以被替換為bike,查詢bike的結果同時包含bike和bikes

         過濾——英文中的the、a,漢語中的“的”等對檢索結果可能並沒有幫。去掉這些詞可以減少索引空間,提高檢索效率,或者降低噪音,從而提升搜尋品質。

         文本正常化——去除“口音”和其他字元標記從而更好的檢索。

         同義字擴充——在標記的位置添加同義字,在使用者搜尋同義字集的時候可能會更好的匹配。

 

核心解析(CoreAnalysis)

Lucene的Analysis包提供了將String和Reader轉換成可索引的標記的原理,主要涉及四個類,分別是:

         Analyzer——負責建立TokenStream,在索引和搜尋過程中用到。

         CharFilter——用來在Reader讀取文本時,為前置標記化執行替換、刪除或者添加操作。

Tokenizer——是一個TokenStream,用來將文本解析成標記,一般是Analysis的第一步。

TokenFilter——也是一個TokenStream,用來改變Tokenizer產生的一些標記。不是所有的Analyzer都需要TokenFilter。


Lucene初識之Analyzer

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.