1.索引組件
1.1擷取內容,這一步包括使用網路爬蟲或蜘蛛程式來搜尋和界定需要索引的內容。當然,資料來源也可能包括資料庫、Distributed File System、本地xml等等。lucene作為一款核心搜尋庫,不提供任何功能來實現內容擷取。
目前有大量的開源爬蟲軟體可以實現這個功能,例如:Solr,lucene的子項;Nutch,apache項目,包含大規模的爬蟲工具,抓取和分辨web網站資料;Grub,比較流行的開源web爬蟲工具;Heritrix,一款開源的Internet文檔搜尋程式;Aperture,支援從web網站、檔案系統和郵箱中抓取,並解析和索引其中的文本資料。
1.2建立文檔,擷取原始內容後,需要對這些內容進行索引,必須將這些內容轉換成組件(文檔)。文檔主要包括幾個帶值的域,比如標題,本文,摘要,作者和連結。如果文檔和域比較重要的話,還可以添加權值。設計完方案後,需要將原始內容中的文本提取出來寫入各個文檔,這一步可以使用文檔過濾器,開源項目如Tika,實現很好的文檔過濾。如果要擷取的原始內容儲存於資料庫中,有一些項目通過無縫連結內容擷取步驟和文檔建立步驟就能輕易地對資料庫表進行航所以操作和搜尋操作,例如DBSight,Hibernate
Search,LuSQL,Compass和Oracle/Lucene整合項目。
1.3文件剖析,搜尋引擎不能直接對文本進行索引:必須將文本分割成一系列被稱為語彙單元的獨立的原子項目。每一個語彙單元能大致與語言中的“單詞”對應起來,這個步驟決定文檔中的文本域如何分割成語彙單元系列。lucene提供了大量內嵌的分析器可以輕鬆控制這步操作。
1.4文檔索引,將文檔加入到索引列表中。
為了提供好的使用者體驗,索引是必須要處理好的一環:在設計和定製索引程式時必須圍繞如何提高使用者的搜尋體驗來進行。
2.搜尋組件----從索引中尋找單詞,從而找到包含該單詞的文檔。搜尋品質由查准率和查全率來衡量。
2.1使用者搜尋介面
2.2建立查詢
2.3搜尋查詢
2.4展現結果