⑴ Lucene 3.4 中文分詞,
StandardAnalyzer是可以用於抄中文分詞,但它是一元分詞,機械地將一個漢字做為一個詞元來切分的,速度慢不說,語義也沒有了,當然應該能保證查全率,呵呵.
ChineseAnalyzer比它好一點,也相當於一元分詞。
lucene的第三方分詞包有很多,上面兩個不建議使用。可以去了解:
IK_CAnalyzer
庖丁解牛分詞器
JE分詞器
⑵ 開發自己的搜索引擎的圖書目錄
第一篇搜索引擎入門
第1章搜索引擎與信息檢索基礎
1.1搜索引擎的歷史
1.1.1萌芽:Archie、Gopher
1.1.2起步:(網路機器人)的出現與Spider(網路爬蟲)
1.1.3發展:Excite、Galaxy、Yahoo等
1.1.4繁榮:Infoseek、AltaVista、Google和Bai
1.2信息檢索系統的基本知識
1.2.1什麼是信息檢索系統
1.2.2信息檢索的過程
1.2.3傳統查找的優點和不足
1.2.4使用索引提高檢索速度
1.2.5倒排索引
1.2.6評價信息檢索系統的標准
1.3Lucene簡介
1.4小結
第二篇Lucene開發詳解
第2章Lucene入門實例
2.1實例介紹
2.1.1實例說明
2.1.2開發過程
2.2准備工作
2.2.1將文檔的全形標點轉換成半形標點
2.2.2將大文檔切分成多個小文檔
2.2.3預處理源文件的統一介面
2.3創建Eclipse工程
2.3.1准備工作
2.3.2創建工程並引入Lucene的JAR包
2.3.3運行文檔預處理類
2.3.4創建處理文檔的索引類:IndexProcessor
2.3.5創建檢索索引的搜索類
2.4運行效果
2.5小結
第3章Lucene索引的建立
3.1Document邏輯文件
3.1.1Lucene的Document
3.1.2為Document添加多種Field
3.1.3Document的內部實現
3.2Field的內部實現
3.2.1Field包含的類
3.2.2Field類的構造方法
3.3Lucene的索引工具IndexWriter
3.3.1IndexWriter的初始化
3.3.2向索引添加文檔
3.3.3限制每個Field中的詞條的數量
3.4Lucene索引過程詳解
3.4.1Lucene索引建立過程概述
3.4.2使用addDocument方法向索引添加文檔
3.4.3DocumentWriter的addDocument方法
3.4.4文檔的倒排
3.4.5對postingTable進行排序
3.4.6將Posting信息寫入索引
3.5索引文件格式
3.5.1索引的segment
3.5.2.fnm格式
3.5.3.fdx與.fdt格式
3.5.4.tii與.tis格式
3.5.5deletable格式
3.5.6復合索引格式.cfs
3.6索引過程的優化
3.6.1合並因子mergeFactor
3.6.2maxMergeDocs
3.6.3minMergeDocs
3.7索引的合並與索引的優化
3.7.1FSDirectory與RAMDirectory
3.7.2使用IndexWriter來合並索引
3.7.3索引的優化
3.8從索引中刪除文檔
3.8.1索引的讀取工具IndexReader
3.8.2使用文檔ID號來刪除特定文檔
3.8.3使用Field信息來刪除批量文檔
3.9Lucene的同步問題
3.9.1為什麼要進行同步以及Lucene的同步法則
3.9.2commit.lock與write.lock
3.10Lucene 2.0的新類:IndexModifier類
3.11小結
第4章Lucene的搜索
4.1使用IndexSearcher進行搜索
4.1.1初始化IndexSearcher
4.1.2IndexSearcher最簡單的使用
4.1.3IndexSearcher的多種search方法
4.2Hits類詳解
4.2.1Hits類的公有介面
4.2.2效率分析
4.2.3Hits內部的緩存
4.2.4Hits類的工作原理
4.3對搜索結果的評分
4.3.1文檔與詞條的向量空間
4.3.2Lucene的文檔得分演算法
4.4構建各種Lucene內建的Query對象
4.4.1toString查看原子查詢
4.4.2查詢重寫與權重
4.4.3TermQuery詞條搜索
4.4.4BooleanQuery布爾搜索
4.4.5RangeQuery范圍搜索
4.4.6PrefixQuery前綴搜索
4.4.7PhraseQuery短語搜索
4.4.8MultiPhraseQuery多短語搜索
4.4.9FuzzyQuery模糊搜索
4.4.10WildcardQuery通配符搜索
4.4.11SpanQuery跨度搜索
4.5第三方提供的Query對象:RegexQuery
4.6通過QueryParser轉換用戶關鍵字
4.6.1詞條的定義
4.6.2QueryParser初始化
4.6.3改變QueryParser默認的布爾邏輯
4.6.4短語和QueryParser
4.6.5FuzzyQuery和QueryParser
4.6.6通配符與QueryParser
4.6.7查找指定的Field
4.6.8RangeQuery與QueryParser
4.6.9QueryParser和SpanQuery
4.7多Field搜索與多索引搜索
4.7.1多域搜索MultiFieldQueryParser
4.7.2MultiSearcher在多個索引上搜索
4.7.3ParalellMultiSearcher:多線程搜索
4.7.4Searchable和RMI
4.8小結
第5章排序、過濾和分頁
5.1相關度排序
5.1.1使用Score進行自然排序
5.1.2Searcher的explain方法
5.1.3通過改變boost值來改變文檔的得分
5.2使用Sort來排序
5.2.1Sort簡介
5.2.2SortField
5.2.3按文檔得分進行排序
5.2.4按文檔的內部ID號來排序
5.2.5按一個或多個Field來排序
5.2.6改變SortField中的Locale信息
5.3搜索的過濾器
5.3.1過濾器的基本結構
5.3.2一個簡單的Filter:建立索引
5.3.3一個簡單的Filter:列印索引文檔信息
5.3.4一個簡單的Filter:安全級別與過濾器代碼
5.3.5一個簡單的Filter:在搜索時應用過濾器
5.3.6一個簡單的Filter:總結
5.3.7按范圍過濾RangeFilter
5.3.8在結果中查詢QueryFilter
5.3.9緩存結果:CachingWrapperFilter
5.4翻頁問題
5.4.1依賴於session的翻頁
5.4.2多次查詢
5.4.3緩存+多次查詢
5.4.4緩存+多次查詢+資料庫
5.5小結
第6章Lucene的分析器
6.1分析
6.1.1分詞
6.1.2Lucene的分析器的結構
6.1.3Lucene的分析器的實現
6.2Lucene與JavaCC
6.2.1JavaCC簡介
6.2.2JavaCC為Lucene提供的分析器腳本
6.2.3Lucene的標准分析器
6.2.4標准過濾器:StandardFilter
6.2.5大小寫轉換器:LowerCaseFilter
6.2.6忽略詞過濾器:StopFilter
6.3分析器的進階
6.3.1再看StandardAnalyzer中的管道過濾器結構
6.3.2長度過濾器:LengthFilter
6.3.3PerFieldAnalyzerWrapper
6.3.4其他
6.4對中文的分析
6.4.1現有的中文分詞方式簡介
6.4.2中科院的分詞軟體和JE分詞
6.5小結
第三篇Lucene相關話題
第7章對Word、Excel 和PDF的處理
7.1使用PDFBox處理PDF文檔
7.1.1PDFBox的下載
7.1.2在Eclipse中配置
7.1.3使用PDFBox解析PDF內容
7.1.4運行效果
7.1.5與Lucene的集成
7.2使用xpdf來處理中文PDF文檔
7.2.1xpdf的下載
7.2.2配置
7.2.3提取中文
7.2.4運行效果
7.3使用POI來處理Excel和Word文件格式
7.3.1對Excel的處理類
7.3.2ExcelReader的運行效果
7.3.3POI中Excel文件Cell的類型
7.3.4對Word的處理類
7.4使用Jacob來處理Word文檔
7.4.1Jacob的下載
7.4.2在Eclipse中配置
7.5小結
第8章Compass:封裝了Lucene的框架
8.1Compass簡介
8.1.1Compass的下載
8.1.2Compass的代碼片斷
8.2Compass的初始配置
8.2.1Compass的配置文件
8.2.2將索引存放於內存中
8.2.3使用JDBC來存儲索引
8.2.4使用連接池來存儲索引
8.2.5載入compass.cfg.xml文件
8.3域模型的配置
8.3.1實體代碼
8.3.2實體關系
8.3.3實體Book的配置文件
8.3.4通用元數據定義文件(.cmd.xml)
8.3.5Author和Article的配置文件
8.4使用Compass來建立索引
8.4.1索引代碼
8.4.2對象關系圖和運行結果
8.5使用Compass來搜索
8.5.1使用find()方法搜索
8.5.2CompassHits類型
8.5.3CompassHit類型
8.5.4使用Lucene語法來查找
8.6配置Analyzer和Optimizer
8.7小結
第9章Lucene分布式和Google Search API
9.1Lucene與分布式
9.1.1什麼是GFS
9.1.2為Lucene提供分布式的幾點設想
9.2Google的Search API
9.2.1搭建環境
9.2.2構建搜索類
9.2.3設置查詢時的參數和查詢語法
9.2.4運行測試
9.3小結
第四篇網路爬蟲Heritrix
第10章無比強大的網路爬蟲Heritrix
10.1Heritrix使用入門
10.1.1下載和運行Heritrix
10.1.2在Eclipse里配置Heritrix的開發環境
10.1.3創建一個新的抓取任務
10.1.4設置抓取時的處理鏈
10.1.5設置運行時的參數
10.1.6運行抓取任務
10.1.7Heritrix的鏡像存儲結構
10.1.8終止抓取或終止Heritrix的運行
10.2Heritrix的架構
10.2.1抓取任務CrawlOrder
10.2.2中央控制器CrawlController
10.2.3Frontier鏈接製造工廠
10.2.4用Berkeley DB實現的BdbFrontier
10.2.5Heritrix的多線程ToeThread和ToePool
10.2.6處理鏈和Processor
10.3擴展和定製Heritrix
10.3.1向Heritrix中添加自己的Extractor
10.3.2定製Queue-assignment-policy的兩個問題
10.3.3定製Queue-assignment-policy繼承QueueAssignmentPolicy類
10.3.4擴展FrontierScheler來抓取特定的內容
10.3.5在Prefetcher中取消robots.txt的限制
10.4小結
第五篇構建垂直搜索引擎
第11章搜索引擎綜合實例:准備篇
11.1實例簡介以及實現途徑
11.1.1選擇網站
11.1.2太平洋電腦網和網易手機頻道
11.1.3分析網站內容並准備抓取清單
11.1.4從下拉列表獲得手機品牌首頁
11.1.5解析手機品牌頁面
11.2在Heritrix中為pconline開發抓取所需的定製類
11.2.1保存所有產品的頁面和圖片
11.2.2不保存其他無關頁面
11.2.3開始抓取
11.3在Heritrix中為網易手機頻道開發抓取所需的定製類
11.3.1分析網易手機頻道
11.3.2設計抓取代碼
11.4在Eclipse中創建工程結構
11.4.1下載插件
11.4.2在Eclipse中配置插件
11.4.3創建工程
11.4.4設置工程的Context
11.4.5設定源代碼存放和輸出路徑
11.4.6添加Java代碼
11.4.7添加Jar包
11.4.8創建JSP文件
11.4.9工程整體結構一覽
11.5設定配置文件及其相關類
11.5.1系統屬性配置文件
11.5.2封裝配置文件
11.6產品詳細信息文件格式
11.7解析網頁信息的基類Extractor
11.8太平洋電腦網手機產品頁面Extractor
11.9pconline產品信息運行效果測試
11.9.1編寫測試函數
11.9.2執行測試
11.10網易手機頻道的產品信息運行效果
11.11構建產品信息詞庫
11.12資料庫與索引結構
11.12.1定義Proct類
11.12.2確定資料庫與索引的結構
11.13資料庫處理和索引處理
11.13.1對資料庫進行操作
11.13.2對索引進行操作
11.14調用資料庫處理類和索引處理類
11.15運行
11.16小結
第12章使用正則表達式與HTMLParser提取網頁內容
12.1HTML的基本知識
12.2JDK中的正則表達式提取網頁內容
12.2.1java.util.regex包
12.2.2正則表達式提取網頁內容實例
12.3HTMLParser提取網頁內容
12.3.1HTMLParser的下載
12.3.2HTMLParser概述
12.3.3Lexer的功能及實現
12.3.4HTMLParser的功能及實現
12.3.5HTMLParser實例
12.4小結
第13章搜索引擎綜合實例:DWR
13.1DWR的下載
13.2DWR入門與實例演示
13.2.1創建工程結構
13.2.2在web.xml中配置DWR
13.2.3配置dwr.xml
13.2.4頁面代碼
13.2.5運行效果
13.2.6DWR與直接使用XMLHttpRequest對象的比較
13.2.7在DWR中操縱自定義的對象
13.2.8查看DWR的輸出日誌
13.3dwr.xml的配置
13.3.1dwr.xml的標准結構
13.3.2標簽與DWR自帶的converter和creator
13.3.3標簽
13.3.4標簽
13.3.5另一個例子
13.4util.js
13.4.1調用util.js
13.4.2使用useLoadingMessage方法顯示提示圖標
13.4.3DWRUtil.setValue和DWRUtil.getValue
13.4.4DWRUtil.getValues和DWRUtil.setValues
13.4.5DWRUtil.addOptions和DWRUtil.removeAllOptions
13.4.6DWRUtil.addRows和DWRUtil.removeAllRows
13.4.7DWRUtil.toDescriptiveString方法
13.5小結
第14章搜索引擎綜合實例:Web篇
14.1配置文件
14.1.1Spring配置文件
14.1.2DWR配置文件
14.1.3web.xml
14.2各種Bean類
14.2.1SearchResult
14.2.2SearchResults
14.2.3SearchRequest
14.3SearchService的實現
14.4SearchResultDao
14.5前台部分
14.5.1搜索主頁面main.jsp
14.5.2圖片的顯示
14.5.3詳細信息頁面detail.jsp
14.6問題
14.7小結