日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Lucene学习总结之二:Lucene的总体架构

發布時間:2024/1/23 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Lucene学习总结之二:Lucene的总体架构 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Lucene總的來說是:

  • 一個高效的,可擴展的,全文檢索庫。
  • 全部用Java實現,無須配置。
  • 僅支持純文本文件的索引(Indexing)和搜索(Search)。
  • 不負責由其他格式的文件抽取純文本文件,或從網絡中抓取文件的過程。

在Lucene in action中,Lucene 的構架和過程如下圖,


說明Lucene?是有索引和搜索的兩個過程,包含索引創建,索引,搜索三個要點。

讓我們更細一些看Lucene的各組件:

?

  • 被索引的文檔用Document對象?表示。
  • IndexWriter?通過函數addDocument?將文檔添加到索引中,實現創建索引的過程。
  • Lucene?的索引是應用反向索引。
  • 當用戶有請求時,Query?代表用戶的查詢語句。
  • IndexSearcher?通過函數search?搜索Lucene Index?。
  • IndexSearcher?計算term weight?和score?并且將結果返回給用戶。
  • 返回給用戶的文檔集合用TopDocsCollector?表示。

?

那么如何應用這些組件呢?

讓我們再詳細到對Lucene API 的調用實現索引和搜索過程。

?

  • 索引過程如下:
    • 創建一個IndexWriter?用來寫索引文件,它有幾個參數,INDEX_DIR?就是索引文件所存放的位置,Analyzer?便是用來對文檔進行詞法分析和語言處理的。
    • 創建一個Document?代表我們要索引的文檔。
    • 將不同的Field?加入到文檔中。我們知道,一篇文檔有多種信息,如題目,作者,修改時間,內容等。不同類型的信息用不同的Field?來表示,在本例子中,一共有兩類信息進行了索引,一個是文件路徑,一個是文件內容。其中FileReader?的SRC_FILE?就表示要索引的源文件。
    • IndexWriter?調用函數addDocument?將索引寫到索引文件夾中。
  • 搜索過程如下:
    • IndexReader?將磁盤上的索引信息讀入到內存,INDEX_DIR?就是索引文件存放的位置。
    • 創建IndexSearcher?準備進行搜索。
    • 創建Analyer?用來對查詢語句進行詞法分析和語言處理。
    • 創建QueryParser?用來對查詢語句進行語法分析。
    • QueryParser?調用parser?進行語法分析,形成查詢語法樹,放到Query?中。
    • IndexSearcher?調用search?對查詢語法樹Query?進行搜索,得到結果TopScoreDocCollector?。

以上便是Lucene API函數的簡單調用。

然而當進入Lucene的源代碼后,發現Lucene有很多包,關系錯綜復雜。

然而通過下圖,我們不難發現,Lucene的各源碼模塊,都是對普通索引和搜索過程的一種實現。

此圖是上一節介紹的全文檢索的流程對應的Lucene實現的包結構。(參照http://www.lucene.com.cn/about.htm?中文章《開放源代碼的全文檢索引擎Lucene》)

?

  • Lucene?的analysis?模塊主要負責詞法分析及語言處理而形成Term?。
  • Lucene?的index?模塊主要負責索引的創建,里面有IndexWriter?。
  • Lucene?的store?模塊主要負責索引的讀寫。
  • Lucene?的QueryParser?主要負責語法分析。
  • Lucene?的search?模塊主要負責對索引的搜索。
  • Lucene?的similarity?模塊主要負責對相關性打分的實現。

總結

以上是生活随笔為你收集整理的Lucene学习总结之二:Lucene的总体架构的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。