概述本手冊首先介紹了Lucene的概念,詳細描述了簡單快速地將Lucene融入WEBDT運行平臺并進行實際開發的方法,使技術人員對Lucene有一個概要性的框架認識,為下一步開發工作奠定基礎。LUCENE簡介什么是LUNCENELucene是一套javaAPI,就如同Servlet是一套API一樣。Lucene不是一個獨立的搜索引擎系統,但是你可以使用Luncene來開發搜索引擎系統。這正如Servlet不是網站系統但是你可以用Servlet開發網站一樣。有人已經用Lucene開發出了獨立的搜索引擎系統,你可以下載,然后不寫一行代碼就是用它。Nutch是最出名的了。
首先,介紹一下IK的整個分詞處理過程:1.Lucene的分詞基類是Analyzer,所以IK提供了Analyzer的一個實現類IKAnalyzer。首先,我們要實例化一個IKAnalyzer,它有一個構造方法接收一個參數isMaxWordLength,這個參數是標識IK是否采用最大詞長分詞,還是采用最細粒度切分兩種分詞算法。實際兩種算法的實現,最大詞長切分是對最細粒度切分的一種后續處理,是對最細粒度切分結果的過濾,選擇出最長的分詞結果。
lucene默認的排序方式,在lucene中也被稱為“評分機制”,可以同過給sort對象傳遞一個null來實現,也可以通過調用sort默認的構造函數來實現
Lucene3.0之結果排序(1):原理傳統上,人們將信息檢索系統返回結果的排序稱為“相關排序”(relevanceranking),隱含其中各條目的順序反映結果和查詢的相關程度。
在這篇文章中,我推薦使用Lucene,它是基于Java的開源搜索引擎,通過提取和索引相關的源碼元素來搜索源代碼。這里,我僅限定搜索Java源代碼。然而,Lucene同樣可以做到對其他編程語言的源代碼的搜索。 文章給出了在Lucene環境下搜索引擎重點方面的簡短概述。要了解更多細節信息,參考Resources部分。
Lucene是一個高效的,基于Java的全文檢索庫。所以在了解Lucene之前要費一番工夫了解一下全文檢索。那么什么叫做全文檢索呢?這要從我們生活中的數據說起。我們生活中的數據總體分為兩種:結構化數據和非結構化數據。結構化數據:指具有固定格式或有限長度的數據,如數據庫,元數據等。非結構化數據:指不定長或無固定格式的數據,如郵件,word文檔等。當然有的地方還會提到第三種,半結構化數據,如XML,HTML等,當根據需要可按結構化數據來處理,也可抽取出純文本按非結構化數據來處理。
全文搜索體系結構本主題展示了組成ClearQuest全文搜索功能的組件的高級體系結構視圖。全文搜索功能使用Solr搜索服務器和Lucene信息檢索庫技術。下圖顯示了組成全文搜索實施的關鍵軟件組件。
Lucene是一個全文搜索框架,而不是應用產品。因此它并不像www.baidu.com 或者google Desktop那么拿來就能用,它只是提供了一種工具讓你能實現這些產品。
主要分為兩部分,第一部分是對《db-data-config.xml》的配置內容的講解(屬于高級內容),第二部分是DataImportHandler(屬于基礎),第三部分是對db-data-config.xml的進階
Solr 是一個帶有web界面的企業級搜索服務器。它通過http協議將xml格式的文件進行索引,通過http協議進行查詢,返回結果為xml格式。
Solr是一個開源的,企業級搜索服務器。她已經是一個成熟的產品,用于強化網絡站點的搜索功能,包括內部局域網。 她是用Java語言編寫。使用HTTP和XML進行數據傳輸,Java的掌握對于學習Solr不是必須的。除了能返回搜索 結果外,還有包括高亮搜索關鍵字,方位導航(已廣泛用于電子商務網站),查詢關鍵字拼寫校驗,自動查詢建議 和 “類似”查詢 幫助更好定位搜索。
Compass是一流的開放源碼JAVA搜索引擎框架,對于你的應用修飾,搜索引擎語義更具有能力。依靠頂級的Lucene搜索引擎,Compass結合了,像Hibernate和Spring的流行的框架,為你的應用提供了從數據模型和數據源同步改變的搜索力.
Lucene基礎指南Lucene是apache下的一個采用java實現的全文搜索引擎,功能非常強大,而它的API又比較簡單,主要就做兩件事:建立索引和進行搜索。
全文檢索(Full-Text Retrieval)是指以文本作為檢索對象,找出含有指定詞匯的文本。全面、準確和快速是衡量全文檢索系統的關鍵指標。 關于全文檢索,我們要知道:1,只處理文本。2,不處理語義。3,搜索時英文不區分大小寫。4,結果列表有相關度排序。
Lucene的索引結構從大到小分為以下幾個概念:index,segments,document(以下可能簡稱為doc),field,termIndex(索引),一個索引,包括所有需要的信息內容;Segments(段),可以理解為一個子索引(sub-index),每當往index中新加入一個doc時,都會新生成一個segments保存這個doc,然后通過判斷,合并部分segments,最后通過優化索引的命令,把所有的segments合并成一個index;Document(文檔),一般以document為單位往index中添加記錄,一個document可以是一個txt,一個html或者是數據庫的一條記錄。一個document由幾個field的組成;
Lucene是一個全文檢索引擎的架構,提供了完整的查詢引擎和索引引擎。Lucene以其方便使用、快速實施以及靈活性受到廣泛的關注。它可以方便地嵌入到各種應用中實現針對應用的全文索引、檢索功能,本總結使用lucene--2.3.2。
Solr簡介說起Apache Lucene,可以說無人不知,無人不曉,但是說道ApacheSolr,恐怕知道的不多。看看Apache Solr的說明:Solr是一個基于Lucenejava庫的企業級搜索服務器,包含XML/HTTP,JSONAPI,高亮查詢結果,緩存,復制還有一個WEB管理界面。Solr運行在Servlet容器中。所以Solr和Lucene的本質區別有以下三點:搜索服務器,企業級和管理。Lucene本質上是搜索庫,不是獨立的應用程序,而Solr是。Lucene專注于搜索底層的建設,而Solr專注于企業應用。Lucene不負責支撐搜索服務所必須的管理,而Solr負責。一句話概括Solr:Solr是Lucene面向企業搜索應用的擴展。