Lucene分析與應(yīng)用

出版時間:2008-9  出版社:機械工業(yè)出版社  作者:吳眾欣,沈家立 編著  頁數(shù):279  
Tag標(biāo)簽:無  

前言

Google被人熟知,Baidu在中國成功推廣,“搜索”吸引著IT界的眼球,也吸引了更多開發(fā)者的好奇心。于是誕生了Lucene,一個開源的全文檢索API(Application Program Interface,應(yīng)用程序界面)。并在LHcene的基礎(chǔ)上,衍生出了一個全文檢索引擎(Nutch)和分布式文件系統(tǒng)( Hadoop)。  大家一定很好奇,Google的搜索引擎是如何工作的?采用什么樣的文件系統(tǒng)?提供什么樣的服務(wù)?……我們無法得知。Lucene與其相關(guān)的項目Nutch和Hadoop彌補了這個不足,讓我們有機會了解到搜索引擎、分布式文件系統(tǒng)的內(nèi)部工作原理。  如果介紹一個軟件或者一套框架如何使用是比較容易的,但是要從源代碼剖析內(nèi)核,卻不容易。老吳與家立在寫作期間,輾轉(zhuǎn)難眠,思索如何表述才能夠準(zhǔn)確地把Lucene的設(shè)計精髓展現(xiàn)給讀者。最終確定通過對Lucene源代碼的解說、輔以圖表,并通過一些具體實例把所有源代碼進(jìn)行組織與剖析,完整地展示Lucene從建立索引到查詢的完整過程。并通過介紹一些Lucene的應(yīng)用,和讀者分享Lucene在具體項目開發(fā)中的應(yīng)用環(huán)境。同時,插入一些Lucene開發(fā)實例,拋磚引玉,試圖讓讀者也能親自體會Lucene本身的強大功能。最后,為了進(jìn)一步說明Lucene的應(yīng)用環(huán)境,本書簡單地介紹了 Nutch和Hadoop。  老吳很早就開始研讀Lucene的源代碼,并閱讀了Dong Cutting的相關(guān)論文,對Lucene的內(nèi)核具有深刻的認(rèn)識。我們很想與大家分享自己的學(xué)習(xí)體會和研究成果,于是決定把它寫出來,家立負(fù)責(zé)Lucene多處應(yīng)用部分的寫作。Lucene是一個很活躍的開源項目,因為老吳研究得比較早,版本以1.4.3為主。為了能夠跟上Lucene的步伐,家立推薦采用了較新的1.9-2.1版本進(jìn)行分析。但是該版本的內(nèi)核變化比較大,因此需要重新分析、調(diào)試、總結(jié)。為了盡快完成,我們?nèi)杖瞻疽?,真所謂痛并快樂著。在此非常感謝家人的支持,朋友的鼓勵。  在此,向我的愛妻張信健對我的一貫支持表示感謝!謝謝你,我的愛人!  希望對搜索引擎內(nèi)核與運行機制感興趣的朋友閱讀此書,由于時間倉促,難免有所疏漏,請讀者批評指正。  吳眾欣  

內(nèi)容概要

本書對Lucene搜索引擎的源代碼進(jìn)行分析講解,并用一些具體實例把所有源代碼進(jìn)行組織與剖析,完整地展示Lucene從建立索引到查詢的過程。本書通過介紹Lucene的應(yīng)用,分析Lucene具體項目開發(fā)的應(yīng)用環(huán)境。最后簡單地介紹了Nutch和Hadoop。   本書適用于開發(fā)搜索引擎的技術(shù)人員、Lucene愛好者等讀者。

作者簡介

吳眾欣,西安交通大學(xué)在讀博士,主攻搜索引擎與服務(wù)組合。喜歡研讀,頭腦雖慢,滴水石穿。好奇心重,興趣廣泛。

書籍目錄

前言第1章  搜索引擎與Lucene  1.1  搜索引擎與Lucene簡介    1.1.1  搜索引擎分類    1.1.2  Lucene項目簡介    1.1.3  其他搜索引擎開發(fā)包介紹  1.2  Lucene的系統(tǒng)架構(gòu)    1.2.1  Lucene最簡示例    1.2.2  Lueene采用的索引結(jié)構(gòu)    1.2.3  Lucene軟件包架構(gòu)  1.3  本書的章節(jié)導(dǎo)航第2章  文檔邏輯視圖與文本分析  2.1  文檔邏輯視圖  2.2  Lucene的文本分析過程簡介  2.3  空格解析器(WhitespaceAnalyzer)    2.3.1  空格分詞器(Whitespace Tokenizer)    2.3.2  Token(標(biāo)志)  2.4  標(biāo)準(zhǔn)解析器(StandardAnalyzer)    2.4.1  標(biāo)準(zhǔn)分詞器(StandardTokenizer)    2.4.2  標(biāo)準(zhǔn)過濾器  2.5  打造自己的解析器    2.5.1  常用的中文分詞法    2.5.2  對CJKAnalyzer的分析    2.5.3  構(gòu)造自己的解析器第3章  Lucene創(chuàng)建索引之一(段索引方式與倒排索引結(jié)構(gòu))  3.1  倒排結(jié)構(gòu)與段索引方式  3.2  索引寫入過程概述第4章  Lucene創(chuàng)建索引之二(在內(nèi)存中創(chuàng)建索引)  4.1  創(chuàng)建Document層面索引  4.2  寫入field信息  4.3  文件倒排過程  4.4  填寫postin,able  4.5  postingTable的排序過程  4.6  寫入field名字文件(.fnm文件)  4.7  寫入field信息文件(.fdt,.fdx文件)  4.8  寫入頻率與位置文件(.frq與.prx文件)  4.9  TermVector方式寫入索引(.tvf,.tvd與.tvx文件)  4.10  字典文件(.tis與.tii文件)  4.11  寫入規(guī)格化文件第5章  Lucene創(chuàng)建索引之三(索引合并過程)  5.1  document層面的合并過程  5.2  field與term的合并過程    5.2.1  field信息合并過程    5.2.2  term信息合并過程    5.2.3  合并norm信息  5.3  Lunece索引采用的壓縮算法    5.3.1  front coding(端部編碼)    5.3.2  variable-byte coding(變長字節(jié)編碼)    5.3.3  delta-coding或deha-encoding  5.4  小結(jié)第6章  Lucene查詢過程之一(查詢模型與引擎預(yù)熱)  6.1  查詢模型    6.1.1  向量模型    6.1.2  布爾模型    6.1.3  Lucene的評分(score)方式  6.2  查詢簡單示例  6.3  引擎預(yù)熱    6.3.1  獲得并打開索引文件    6.3.2  獲得segment信息    6.3.3  FSDirectory打開索引過程    6.3.4  獲得field信息    6.3.5  獲得term信息第7章  Lucene查詢過程之二(查詢解析與語法)  7.1  構(gòu)建查詢解析器(QueryParser)  7.2  Lucene的查詢語法    7.2.1  項(Tcrm)查詢    7.2.2  域(Field)    7.2.3  詞條查詢(Term Modifiers)    7.2.4  布爾操作符(Boolean Operator)    7.2.5  組合查詢(Grouping)    7.2.6  針對field的組合查詢(Field Grouping Field)    7.2.7  Escaping Special Character(轉(zhuǎn)義字符)  7.3  Lucene查詢語法樹的構(gòu)建過程    7.3.1  過程分析    7.3.2  語法樹分析實例第8章  Lucene查詢過程之三(相似度匹配與算法分析)  8.1  查詢與相似度計算    8.1.1  查詢器(Searcher)的查詢過程    8.1.2  查詢語句的權(quán)重計算    8.1.3  獲得topK個document  8.2  Lncene查詢算法分析    8.2.1  相似度計算簡單實例    8.2.2  線性相似度計算    8.2.3  基于倒排索引的相似度計算    8.2.4  Lucene的相似度計算第9章  Lucene標(biāo)引與查詢?nèi)淌纠? 9.1  實例描述  9.2 建立索引過程    9.2.1  選擇文檔中建立索引的.field    9.2.2  選擇field錄入方式    9.2.3  生成segment文件    9.2.4  生成fields文件    9.2.5  posting文件    9.2.6  合并segment index生成index文件    9.2.7  合并后的文件關(guān)系  9.3  查詢過程第10章  Lucene的常用應(yīng)用場景分析  10.1  對大型XML文檔集合的檢索    10.1.1  都柏林文件介紹    10.1.2  XML分析器介紹    10.1.3  Lucene在大型XML文件中的應(yīng)用  10.2  MuhiSearcher的應(yīng)用    10.2.1  MultiSearcher的應(yīng)用    10.2.2  ParallelMuhiSearcher的應(yīng)用第11章  利用Lucene構(gòu)建分布式搜索引擎  11.1  分布式文件系統(tǒng)和Hadoop    11.1.1  Hadoop文件系統(tǒng)體系結(jié)構(gòu)    11.1.2  系統(tǒng)交互過程:單一NameNode方式    11.1.3  系統(tǒng)組件描述  11.2  Nutch簡單剖析  11.3  體驗Nutch附錄A  TestIndexWriterMerging附錄B  TestDocumentWriter與DocHelper

章節(jié)摘錄

1.1搜索引擎與Lucene簡介從最初的圖書檢索到鏈接查詢,對圖片、多媒體的搜索,直至現(xiàn)在的人肉搜索,搜索引擎作為信息融合平臺將萬千世界帶到你的周圍,讓你觸手可得,悄悄改變著你的生活,同時也可能將你暴露于眾目睽睽之下。有心人可能會考慮它背后的機理,以體味搜索引擎給我們的生活帶來的變化?,F(xiàn)今的商業(yè)搜索引擎還是Google一家獨大,微軟也提供了MSN搜索引擎,但技術(shù)與經(jīng)驗積累還不夠。而百度則是中文搜索中的佼佼者。在商業(yè)搜索引擎中,核心技術(shù)與外部世界之間隔著一扇沉重的大門,幸好開源社區(qū)常常會將這扇門撬開些許縫隙,讓我們能窺得冰山一角。Lucene與MG4J正是開源搜索引擎項目,雖然“代碼之前,了無秘密”,但是冰山一角也非輕易窺得。本章我們也是浮光掠影地談一談搜索引擎,力圖能給大家一些新的信息,以便從多個角度來認(rèn)識搜索引擎與Lucene。

圖書封面

圖書標(biāo)簽Tags

評論、評分、閱讀與下載


    Lucene分析與應(yīng)用 PDF格式下載


用戶評論 (總計37條)

 
 

  •   《Lucene分析與應(yīng)用》好書
  •   寫得很詳細(xì),雖然離新版本lucene有一定的差距,但lucene的核心還是講得很透徹的。
  •   學(xué)習(xí)一下高級算法,給自己充下電。
  •   對源碼確實是研究過的人寫的,整理的相當(dāng)不錯。
  •   這方面的書本身就不多。當(dāng)當(dāng)送貨還是一如既往的快哈,表揚一下
  •   書的版本太低。
  •   書寫得比較深,不建議初學(xué)者看
  •   前6章,最好結(jié)合第8章看,感覺很爽
  •   作者沒有從什么搜索的概念開始,而是直截了當(dāng)?shù)纳钊氲絣ucene的關(guān)鍵概念,痛快淋漓的對lucene的源碼以及執(zhí)行流程結(jié)合進(jìn)行了剖析,讓人讀起來很舒服,特別是對lucene的流程解析讓人一目了然對于深入lucene開發(fā)是本不錯的lucene參考書
  •   眾多的介紹Lucene的書中,大多都是講講怎么用,介紹些API。知其然不知其所以然。當(dāng)然這也跟那些作者的自身的積累有關(guān)--很多都只是些程序員,對全文檢索的理論背景不夠熟悉。本書第一作者是西安交大的在讀博士。
  •   想學(xué)習(xí)學(xué)lucene
  •   看了下感覺還不錯,市面上Lucene的書基本都是將使用,很少涉及到源碼,想深入了解lucene檢索的可以拿來看看~
  •   如果是深入搜索引擎方面那么可以參考這個模型來深入細(xì)化,不過書的內(nèi)容比較老了,建議要么出第二版,要么買其它方面比較新的書籍吧!
  •   本書寫的很詳細(xì),程序也有完整的介紹,很符合做開發(fā)的人看。
  •   畢業(yè)設(shè)計要做個搜索引擎,這個資料用得上。
  •   很少有的介紹了lucence的書
  •   講得還不錯。
    要靜下心來看。
    就是分析的版本早了點,希望能出第二版。
  •   看了這本書,初次看有點不大懂,不過整體感覺還不錯?。。?/li>
  •   專業(yè)書,很有針對性,有幫助
  •   瞥了下還行。。。
  •   有基礎(chǔ)才能看的,不然會不知所云
  •   兩位作者寫的Lucene分析與應(yīng)用看了前6章,學(xué)習(xí)到了很多關(guān)于Lucene內(nèi)部索引結(jié)構(gòu)的知識,對初學(xué)者有絕對有益,需要深入分析,有些地方講的不夠透徹,當(dāng)然也存在勘校錯誤(難免的),關(guān)于Lucene需要反復(fù)研究,所以暫時對我初學(xué)這還是很有幫助的,隨著后續(xù)的學(xué)習(xí),一定回給出具體的評論...
  •   Lucene是開源的,這個是理論分析,有一定的基礎(chǔ)后,看很好。
  •   我是Lucene的初學(xué)者,買了這本書看了一下,覺得看不懂~~~~這本書不太適合初學(xué)者
  •   看不懂,后來看API更看不懂,后來定了luceneinaction第二版,希望可以看懂吧
  •   還行,不過不適合初學(xué)者。
  •   書目結(jié)構(gòu)還行,表述不是很好,但具有價格優(yōu)勢
  •   感覺條理上不夠好,看了一半就沒看下去
  •   大致看了一下,感覺寫的很一般,也不適合初學(xué)者。
  •   好書,看了一部分,很有幫助
  •   我看了《Lucene分析與應(yīng)用》后,總體感覺還行,有一定的理論深度,對我們了解lucene的內(nèi)部結(jié)構(gòu)有一定的幫助,但書中絕大部分內(nèi)容都在對lucene做分析,而“應(yīng)用”方面的內(nèi)容太少,且書中的實例也不提供源代碼下載??傮w評分70分。
  •   作者很認(rèn)真,懂的也很多,單文字很生澀??匆粫鸵S谑俏腋目碼ction in lucene了
  •   又是一本尷尬書,我看不明白本書定位
  •   本書很基礎(chǔ)介紹了lucene的索引存儲結(jié)構(gòu),適合想了解詳細(xì)內(nèi)部信息的程序員閱讀
  •   我覺得這本書很好,似乎是中文書里唯一一本介紹lucene源代碼的書,自己也在這本書的幫助下研究lucene的內(nèi)核。這本書里也沒什么代碼啊。。只有后面的附錄里的代碼而已
  •   比起lucene in aciton似乎要差一些
  •   這本書不錯,講的比較深刻
 

250萬本中文圖書簡介、評論、評分,PDF格式免費下載。 第一圖書網(wǎng) 手機版

京ICP備13047387號-7