Lucene分析與應(yīng)用

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

前言

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

內(nèi)容概要

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

作者簡(jiǎn)介

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

書籍目錄

前言第1章  搜索引擎與Lucene  1.1  搜索引擎與Lucene簡(jiǎn)介    1.1.1  搜索引擎分類    1.1.2  Lucene項(xiàng)目簡(jiǎn)介    1.1.3  其他搜索引擎開(kāi)發(fā)包介紹  1.2  Lucene的系統(tǒng)架構(gòu)    1.2.1  Lucene最簡(jiǎn)示例    1.2.2  Lueene采用的索引結(jié)構(gòu)    1.2.3  Lucene軟件包架構(gòu)  1.3  本書的章節(jié)導(dǎo)航第2章  文檔邏輯視圖與文本分析  2.1  文檔邏輯視圖  2.2  Lucene的文本分析過(guò)程簡(jiǎn)介  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)過(guò)濾器  2.5  打造自己的解析器    2.5.1  常用的中文分詞法    2.5.2  對(duì)CJKAnalyzer的分析    2.5.3  構(gòu)造自己的解析器第3章  Lucene創(chuàng)建索引之一(段索引方式與倒排索引結(jié)構(gòu))  3.1  倒排結(jié)構(gòu)與段索引方式  3.2  索引寫入過(guò)程概述第4章  Lucene創(chuàng)建索引之二(在內(nèi)存中創(chuàng)建索引)  4.1  創(chuàng)建Document層面索引  4.2  寫入field信息  4.3  文件倒排過(guò)程  4.4  填寫postin,able  4.5  postingTable的排序過(guò)程  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)建索引之三(索引合并過(guò)程)  5.1  document層面的合并過(guò)程  5.2  field與term的合并過(guò)程    5.2.1  field信息合并過(guò)程    5.2.2  term信息合并過(guò)程    5.2.3  合并norm信息  5.3  Lunece索引采用的壓縮算法    5.3.1  front coding(端部編碼)    5.3.2  variable-byte coding(變長(zhǎng)字節(jié)編碼)    5.3.3  delta-coding或deha-encoding  5.4  小結(jié)第6章  Lucene查詢過(guò)程之一(查詢模型與引擎預(yù)熱)  6.1  查詢模型    6.1.1  向量模型    6.1.2  布爾模型    6.1.3  Lucene的評(píng)分(score)方式  6.2  查詢簡(jiǎn)單示例  6.3  引擎預(yù)熱    6.3.1  獲得并打開(kāi)索引文件    6.3.2  獲得segment信息    6.3.3  FSDirectory打開(kāi)索引過(guò)程    6.3.4  獲得field信息    6.3.5  獲得term信息第7章  Lucene查詢過(guò)程之二(查詢解析與語(yǔ)法)  7.1  構(gòu)建查詢解析器(QueryParser)  7.2  Lucene的查詢語(yǔ)法    7.2.1  項(xiàng)(Tcrm)查詢    7.2.2  域(Field)    7.2.3  詞條查詢(Term Modifiers)    7.2.4  布爾操作符(Boolean Operator)    7.2.5  組合查詢(Grouping)    7.2.6  針對(duì)field的組合查詢(Field Grouping Field)    7.2.7  Escaping Special Character(轉(zhuǎn)義字符)  7.3  Lucene查詢語(yǔ)法樹(shù)的構(gòu)建過(guò)程    7.3.1  過(guò)程分析    7.3.2  語(yǔ)法樹(shù)分析實(shí)例第8章  Lucene查詢過(guò)程之三(相似度匹配與算法分析)  8.1  查詢與相似度計(jì)算    8.1.1  查詢器(Searcher)的查詢過(guò)程    8.1.2  查詢語(yǔ)句的權(quán)重計(jì)算    8.1.3  獲得topK個(gè)document  8.2  Lncene查詢算法分析    8.2.1  相似度計(jì)算簡(jiǎn)單實(shí)例    8.2.2  線性相似度計(jì)算    8.2.3  基于倒排索引的相似度計(jì)算    8.2.4  Lucene的相似度計(jì)算第9章  Lucene標(biāo)引與查詢?nèi)淌纠? 9.1  實(shí)例描述  9.2 建立索引過(guò)程    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  查詢過(guò)程第10章  Lucene的常用應(yīng)用場(chǎng)景分析  10.1  對(duì)大型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)交互過(guò)程:?jiǎn)我籒ameNode方式    11.1.3  系統(tǒng)組件描述  11.2  Nutch簡(jiǎn)單剖析  11.3  體驗(yàn)Nutch附錄A  TestIndexWriterMerging附錄B  TestDocumentWriter與DocHelper

章節(jié)摘錄

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

圖書封面

圖書標(biāo)簽Tags

無(wú)

評(píng)論、評(píng)分、閱讀與下載


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


用戶評(píng)論 (總計(jì)37條)

 
 

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

250萬(wàn)本中文圖書簡(jiǎn)介、評(píng)論、評(píng)分,PDF格式免費(fèi)下載。 第一圖書網(wǎng) 手機(jī)版

京ICP備13047387號(hào)-7