⑴ 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小结