丄諦啲仇魜ヤ
          如 果 敵 人 讓 你 生 氣 , 那 說 明 你 沒 有 勝 他 的 把 握!
          posts - 6,comments - 56,trackbacks - 1

            lucene-2.0學習文檔

          http://www.javaeye.com/search?classify=topic&keyword=lucene-2.0%E5%AD%A6%E4%B9%A0%E6%96%87%E6%A1%A3

            Compass
          http://www.360doc.com/showWeb/0/14/357563.aspx


          我寫了一個通用的例子  呵呵 不知道好不好  http://www.aygfsteel.com/Files/Crying/全文檢索.rar 

          Lucene 簡介

          Lucene 是一個基于 Java 的全文信息檢索工具包,它不是一個完整的搜索應用程序,而是為你的應用程序提供索引和搜索功能。Lucene 目前是 Apache Jakarta 家族中的一個開源項目。也是目前最為流行的基于 Java 開源全文檢索工具包。

          目前已經有很多應用程序的搜索功能是基于 Lucene 的,比如 Eclipse 的幫助系統的搜索功能。Lucene 能夠為文本類型的數據建立索引,所以你只要能把你要索引的數據格式轉化的文本的,Lucene 就能對你的文檔進行索引和搜索。比如你要對一些 HTML 文檔,PDF 文檔進行索引的話你就首先需要把 HTML 文檔和 PDF 文檔轉化成文本格式的,然后將轉化后的內容交給 Lucene 進行索引,然后把創建好的索引文件保存到磁盤或者內存中,最后根據用戶輸入的查詢條件在索引文件上進行查詢。不指定要索引的文檔的格式也使 Lucene 能夠幾乎適用于所有的搜索應用程序。

          圖 1 表示了搜索應用程序和 Lucene 之間的關系,也反映了利用 Lucene 構建搜索應用程序的流程:


          圖1. 搜索應用程序和 Lucene 之間的關系
          圖1. 搜索應用程序和 Lucene 之間的關系






          索引和搜索

          索引是現代搜索引擎的核心,建立索引的過程就是把源數據處理成非常方便查詢的索引文件的過程。為什么索引這么重要呢,試想你現在要在大量的文檔中搜索含有某個關鍵詞的文檔,那么如果不建立索引的話你就需要把這些文檔順序的讀入內存,然后檢查這個文章中是不是含有要查找的關鍵詞,這樣的話就會耗費非常多的時間,想想搜索引擎可是在毫秒級的時間內查找出要搜索的結果的。這就是由于建立了索引的原因,你可以把索引想象成這樣一種數據結構,他能夠使你快速的隨機訪問存儲在索引中的關鍵詞,進而找到該關鍵詞所關聯的文檔。Lucene 采用的是一種稱為反向索引(inverted index)的機制。反向索引就是說我們維護了一個詞/短語表,對于這個表中的每個詞/短語,都有一個鏈表描述了有哪些文檔包含了這個詞/短語。這樣在用戶輸入查詢條件的時候,就能非常快的得到搜索結果。我們將在本系列文章的第二部分詳細介紹 Lucene 的索引機制,由于 Lucene 提供了簡單易用的 API,所以即使讀者剛開始對全文本進行索引的機制并不太了解,也可以非常容易的使用 Lucene 對你的文檔實現索引。

          對文檔建立好索引后,就可以在這些索引上面進行搜索了。搜索引擎首先會對搜索的關鍵詞進行解析,然后再在建立好的索引上面進行查找,最終返回和用戶輸入的關鍵詞相關聯的文檔。

          posted on 2007-12-29 09:06 Crying 閱讀(277) 評論(0)  編輯  收藏 所屬分類: lucene-2.0與compass

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 惠水县| 齐河县| 尚义县| 太原市| 莒南县| 黄大仙区| 龙江县| 渝中区| 天气| 巴林左旗| 镇平县| 望谟县| 大荔县| 犍为县| 紫金县| 金溪县| 泰顺县| 梅河口市| 张掖市| 安康市| 侯马市| 平昌县| 徐州市| 吉林省| 吴旗县| 武宁县| 辽宁省| 新化县| 武夷山市| 离岛区| 柘荣县| 盐边县| 瓦房店市| 宜昌市| 玛纳斯县| 奉化市| 江阴市| 海安县| 南京市| 乌审旗| 仙居县|