日本好好热aⅴ|国产99视频精品免费观看|日本成人aV在线|久热香蕉国产在线

  • <cite id="ikgdy"><table id="ikgdy"></table></cite>
    1. 西西軟件園多重安全檢測下載網(wǎng)站、值得信賴的軟件下載站!
      軟件
      軟件
      文章
      搜索

      首頁編程開發(fā)java → Lucene學習總結(jié)之二:Lucene的總體架構(gòu)

      Lucene學習總結(jié)之二:Lucene的總體架構(gòu)

      相關(guān)軟件相關(guān)文章發(fā)表評論 來源:forfuture1978時間:2010/2/22 23:32:16字體大。A-A+

      作者:覺先點擊:296次評論:11次標簽: Lucene

      lucene 索引查看工具V4.0 最新版(Luke)
      • 類型:文件處理大。9.8M語言:英文 評分:3.7
      • 標簽:
      立即下載

      Lucene總的來說是:

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

      在Lucene in action中,Lucene 的構(gòu)架和過程如下圖,

      image

      說明Lucene是有索引和搜索的兩個過程,包含索引創(chuàng)建,索引,搜索三個要點。

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

      lucene  zong ti jia gou

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

       

      那么如何應(yīng)用這些組件呢?

      讓我們再詳細到對Lucene API 的調(diào)用實現(xiàn)索引和搜索過程。

      using lucene

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

      以上便是Lucene API函數(shù)的簡單調(diào)用。

      然而當進入Lucene的源代碼后,發(fā)現(xiàn)Lucene有很多包,關(guān)系錯綜復雜。

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

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

      clip_image008

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

      了解了Lucene的整個結(jié)構(gòu),我們便可以開始Lucene的源碼之旅了。

        相關(guān)評論

        閱讀本文后您有什么感想? 已有人給出評價!

        • 8 喜歡喜歡
        • 3 頂
        • 1 難過難過
        • 5 囧
        • 3 圍觀圍觀
        • 2 無聊無聊

        熱門評論

        最新評論

        發(fā)表評論 查看所有評論(11)

        昵稱:
        表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
        字數(shù): 0/500 (您的評論需要經(jīng)過審核才能顯示)