• 文章介绍
  • 资源名称:Lucene 实战(第2版)内容简介:Michael McCandless的《Lucene实战(第2版)》基于Apache的Lucene 3.0,从Lucene核心、Lucene应用、案例分析3个方面详细系统地介绍了Lucene,包括认识Lucene、建立索引、为应用程序添加搜索功能、高级搜索技术、扩展搜索、使用tika提取文本、Lucene的高级扩展、使用其他编程语言访问Lucene、Lucene管理和性能调优等内容,最后还提供了三大经典成功案例,为读者展示了一个奇妙的搜索世界。 《Lucene实战(第2版)》适合于已具有一定Java编程基本的读者,以及希望能够把强大的搜索功能添加到自己的应用程序中的开发人员。本书对于从事搜索引擎工作的工程技术人员,以及在Java平台上进行各类软件开发的人员和编程爱好者,也具有很好的学习参考价值。作者简介:Michael McCandless是Lucene PMC的成员和负责人。他有10年以上有关构建搜索引擎的相关经验。Erik Hatcher和Otis GospodRetic是本书第1版的作者,长期以来,为Lucene、Solr、Mahout和其他基于Lucene的项目做出了贡献。Erik Hatcher和Otis GospodRetic是本书第1版的作者,长期以来,为Lucene、Solr、Mahout和其他基于Lucene的项目做出了贡献。资源目录:第1部分 lucene核心第1章 初识lucene1.1 应对信息爆炸1.2 lucene是什么1.2.1 lucene能做些什么1.2.2 lucene的历史1.3 lucene和搜索程序组件1.3.1 索引组件1.3.2 搜索组件1.3.3 搜索程序的其他模块1.3.4 lucene与应用程序的整合点1.4 lucene实战:程序示例1.4.1 建立索引1.4.2 搜索索引1.5 理解索引过程的核心类1.5.1 indexwriter1.5.2 directory1.5.3 analyzer1.5.4 document1.5.5 field1.6 理解搜索过程的核心类1.6.1 indexsearcher1.6.2 term1.6.3 query1.6.4 termquery1.6.5 topdocs1.7 小结第2章 构建索引2.1 lucene如何对搜索内容进行建模2.1.1 文档和域2.1.2 灵活的架构2.1.3 反向规格化(denormalization)2.2 理解索引过程2.2.1 提取文本和创建文档2.2.2 分析文档2.2.3 向索引添加文档2.3 基本索引操作2.3.1 向索引添加文档2.3.2 删除索引中的文档2.3.3 更新索引中的文档2.4 域选项2.4.1 域索引选项2.4.2 域存储选项2.4.3 域的项向量选项2.4.4 reader、tokenstream和byte[ ]域值2.4.5 域选项组合2.4.6 域排序选项2.4.7 多值域2.5 对文档和域进行加权操作2.5.1 文档加权操作2.5.2 域加权操作2.5.3 加权基准(norms)2.6 索引数字、日期和时间2.6.1 索引数字2.6.2 索引日期和时间2.7 域截取(field truncation)2.8 近实时搜索(near-real-time search)2.9 优化索引2.10 其他directory子类2.11 并发、线程安全及锁机制2.11.1 线程安全和多虚拟机安全2.11.2 通过远程文件系统访问索引2.11.3 索引锁机制2.12 调试索引2.13 高级索引概念2.13.1 用indexreader删除文档2.13.2 回收被删除文档所使用过的磁盘空间2.13.3 缓冲和刷新2.13.4 索引提交2.13.5 acid事务和索引连续性2.13.6 合并段2.14 小结第3章 为应用程序添加搜索功能3.1 实现简单的搜索功能3.1.1 对特定项的搜索3.1.2 解析用户输入的查询表达式:queryparser3.2 使用indexsearcher类3.2.1 创建indexsearcher类3.2.2 实现搜索功能3.2.3 使用topdocs类3.2.4 搜索结果分页3.2.5 近实时搜索3.3 理解lucene的评分机制3.3.1 lucene如何评分3.3.2 使用explain()理解搜索结果评分3.4 lucene的多样化查询3.4.1 通过项进行搜索:termquery类3.4.2 在指定的项范围内搜索:termrangequery类3.4.3 在指定的数字范围内搜索:numericrangequery类3.4.4 通过字符串搜索:prefixquery类3.4.5 组合查询:booleanquery类3.4.6 通过短语搜索:phrasequery类3.4.7 通配符查询:wildcardquery类3.4.8 搜索类似项:fuzzyquery类3.4.9 匹配所有文档:matchalldocsquery类3.5 解析查询表达式:queryparser3.5.1 query.tostring方法3.5.2 termquery3.5.3 项范围查询3.5.4 数值范围搜索和日期范围搜索3.5.5 前缀查询和通配符查询3.5.6 布尔操作符3.5.7 短语查询3.5.8 模糊查询3.5.9 matchalldocsquery3.5.10 分组查询3.5.11 域选择3.5.12 为子查询设置加权3.5.13 是否一定要使用queryparse3.6 小结第4章 lucene的分析过程4.1 使用分析器4.1.1 索引过程中的分析4.1.2 queryparser分析4.1.3 解析vs分析:分析器何时不再适用4.2 剖析分析器4.2.1 语汇单元的组成4.2.2 语汇单元流揭秘4.2.3 观察分析器4.2.4 语汇单元过滤器:过滤顺序的重要性4.3 使用内置分析器4.3.1 stopanalyzer4.3.2 standardanalyzer4.3.3 应当采用哪种核心分析器4.4 近音词查询4.5 同义词、别名和其他表示相同意义的词4.5.1 创建synonymanalyzer4.5.2 显示语汇单元的位置4.6 词干分析4.6.1 stopfilter保留空位4.6.2 合并词干操作和停用词移除操作4.7 域分析4.7.1 多值域分析4.7.2 特定域分析4.7.3 搜索未被分析的域4.8 语言分析4.8.1 unicode与字符编码4.8.2 非英语语种分析4.8.3 字符规范化处理4.8.4 亚洲语种分析4.8.5 有关非英语语种分析的其他问题4.9 nutch分析4.10 小结第5章 高级搜索技术5.1 lucene域缓存5.1.1 为所有文档加载域值5.1.2 段对应的reader5.2 对搜索结果进行排序5.2.1 根据域值进行排序5.2.2 按照相关性进行排序5.2.3 按照索引顺序进行排序5.2.4 通过域进行排序5.2.5 倒排序5.2.6 通过多个域进行排序5.2.7 为排序域选择类型5.2.8 使用非默认的locale方式进行排序5.3 使用multiphrasequery5.4 针对多个域的一次性查询5.5 跨度查询5.5.1 跨度查询的构建模块:spantermquery5.5.2 在域的起点查找跨度5.5.3 彼此相邻的跨度5.5.4 在匹配结果中排除重叠的跨度5.5.5 spanorquery类5.5.6 spanquery类和queryparser类5.6 搜索过滤5.6.1 termrangefilter5.6.2 numericrangefilter5.6.3 fieldcacherangefilter5.6.4 特定项过滤5.6.5 使用querywrapperfilter类5.6.6 使用spanqueryfilter类5.6.7 安全过滤器5.6.8 使用booleanquery类进行过滤5.6.9 prefixfilter5.6.10 缓存过滤结果5.6.11 将filter封装成query5.6.12 对过滤器进行过滤5.6.13 非lucene内置的过滤器5.7 使用功能查询实现自定义评分5.7.1 功能查询的相关类5.7.2 使用功能查询对最近修改过的文档进行加权5.8 针对多索引的搜索5.8.1 使用multisearch类5.8.2 使用parallelmultisearcher进行多线程搜索5.9 使用项向量5.9.1 查找相似书籍5.9.2 它属于哪个类别5.9.3 termvectormapper类5.10 使用fieldselector加载域5.11 停止较慢的搜索5.12 小结第6章 扩展搜索6.1 使用自定义排序方法6.1.1 针对地理位置排序方式进行文档索引6.1.2 实现自定义的地理位置排序方式6.1.3 访问自定义排序中的值6.2 开发自定义的collector6.2.1 collector基类6.2.2 自定义collector:booklinkcollector6.2.3 alldoccollector类6.3 扩展queryparser类6.3.1 自定义queryparser的行为6.3.2 禁用模糊查询和通配符查询6.3.3 处理数值域的范围查询6.3.4 处理日期范围6.3.5 对已排序短语进行查询6.4 自定义过滤器6.4.1 实现自定义过滤器6.4.2 搜索期间使用自定义过滤器6.4.3 另一种选择:filterquery类6.5 有效载荷(payloads)6.5.1 分析期间生成有效载荷6.5.2 搜索期间使用有效载荷6.5.3 有效载荷和跨度查询6.5.4 通过termpositions来检索有效载荷6.6 小结第2部分 lucene应用第7章 使用tika提取文本7.1 tika是什么7.2 tika的逻辑设计和api7.3 安装tika7.4 tika的内置文本提取工具7.5 编程实现文本提取7.5.1 索引lucene文档7.5.2 tika工具类7.5.3 选择自定义分析器7.6 tika的局限7.7 索引自定义的xml文件7.7.1 使用sax进行解析7.7.2 使用apache commons digester进行解析和索引7.8 其他选择7.9 小结第8章 lucene基本扩展8.1 luke:lucene的索引工具箱8.1.1 overview标签页:索引的全局视图8.1.2 浏览文档8.1.3 使用queryparser进行搜索8.1.4 files and plugins标签页8.2 分析器、语汇单元器和语汇单元过滤器8.2.1 snowballanalyzer8.2.2 ngram过滤器8.2.3 shingle过滤器8.2.4 获取捐赠分析器8.3 高亮显示查询项8.3.1 高亮显示模块8.3.2 独立的高亮显示示例8.3.3 使用css进行高亮显示处理8.3.4 高亮显示搜索结果8.4 fastvector highlighter类8.5 拼写检查8.5.1 生成提示列表8.5.2 选择最佳提示8.5.3 向用户展示搜索结果8.5.4 一些加强拼写检查的考虑8.6 引人注目的查询扩展功能8.6.1 morelikethis8.6.2 fuzzylikethisquery8.6.3 boostingquery8.6.4 termsfilter8.6.5 duplicatefilter8.6.6 regexquery8.7 构建软件捐赠模块(contrib module)8.7.1 源代码获取方式8.7.2 contrib目录的ant插件8.8 小结第9章 lucene高级扩展9.1 链式过滤器9.2 使用berkeley db存储索引9.3 wordnet同义词9.3.1 建立同义词索引9.3.2 将wordnet同义词链接到分析器中9.4 基于内存的快速索引9.5 xml queryparser:超出“one box”的搜索接口9.5.1 使用xmlqueryparser9.5.2 扩展xml查询语法9.6 外围查询语言9.7 spatial lucene9.7.1 索引空间数据9.7.2 搜索空间数据9.7.3 spatial lucene的性能特点9.8 远程进行多索引搜索9.9 灵活的queryparser9.10 其他内容9.11 小结第10章 其他编程语言使用lucene10.1 移植入门10.1.1 移植取舍10.1.2 选择合适的移植版本10.2 clucene(c++)10.2.1 移植目的10.2.2 api和索引兼容10.2.3 支持的平台10.2.4 当前情况以及未来展望10.3 lucene.net(c#和其他.net编程语言)10.3.1 api兼容10.3.2 索引兼容10.4 kinosearch和lucy(perl)10.4.1 kinosearch10.4.2 lucy10.4.3 其他perl选项10.5 ferret(ruby)10.6 php10.6.1 zend framework10.6.2 php bridge10.7 pylucene(python)10.7.1 api兼容10.7.2 其他python选项10.8 solr(包含多种编程语言)10.9 小结第11章 lucene管理和性能调优11.1 性能调优11.1.1 简单的性能调优步骤11.1.2 测试方法11.1.3 索引-搜索时延调优11.1.4 索引操作吞吐量调优11.1.5 搜索时延和搜索吞吐量调优11.2 多线程和并行处理11.2.1 使用多线程进行索引操作11.2.2 使用多线程进行搜索操作11.3 资源消耗管理11.3.1 磁盘空间管理11.3.2 文件描述符管理11.3.3 内存管理11.4 热备份索引11.4.1 创建索引备份11.4.2 恢复索引11.5 常见错误11.5.1 索引损坏11.5.2 修复索引11.6 小结第3部分 案例分析第12章 案例分析1:krugle12.1 krugle介绍12.2 应用架构12.3 搜索性能12.4 源代码解析12.5 子串搜索12.6 查询vs搜索12.7 改进空间12.7.1 fieldcache内存使用12.7.2 合并索引12.8 小结第13章 案例分析2:siren13.1 siren介绍13.2 siren优势13.2.1 通过所有域进行搜索13.2.2 一种高效词典13.2.3 可变域13.2.4 对多值域的高效处理13.3 使用siren索引实体13.3.1 数据模型13.3.2 实现问题13.3.3 索引概要13.3.4 索引前的数据准备13.4 使用siren搜索实体13.4.1 搜索内容13.4.2 根据单元限制搜索范围13.4.3 将单元合并成元组13.4.4 针对实体描述进行查询13.5 在solr中集成siren13.6 benchmark13.7 小结第14章 案例分析3:linkedin14.1 使用bobo browse进行分组搜索14.1.1 bobo browse的设计14.1.2 深层次分组搜索14.2 使用zoie进行实时搜索14.2.1 zoie架构14.2.2 实时vs近实时14.2.3 文档与索引请求14.2.4 自定义indexreaders14.2.5 与lucene的近实时搜索进行比较14.2.6 分布式搜索14.3 小结附录a 安装lucenea.1 二进制文件安装a.2 运行命令行演示程序a.3 运行web应用演示程序a.4 编译源代码a.5 排错附录b lucene索引格式b.1 逻辑索引视图b.2 关于索引结构b.2.1 理解多文件索引结构b.2.2 理解复合索引结构b.2.3 转换索引结构b.3 倒排索引b.4 小结附录c lucene/contrib benchmarkc.1 运行测试脚本c.2 测试脚本的组成部分c.2.1 内容源和文档生成器c.2.2 查询生成器c.3 控制结构c.4 内置任务c.4.1 建立和使用行文件c.4.2 内置报表任务c.5 评估搜索质量c.6 出错处理c.7 小结附录d 资源d.1 lucene知识库d.2 国际化d.3 语言探测d.4 项向量d.5 lucene移植版本d.6 案例分析d.7 其他d.8 信息检索软件d.9 doug cutting的著作d.9.1 会议论文d.9.2 美国专利资源截图:

     

    Lucene 实战(第2版)-一天源码

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    RIPRO主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
    一天源码 » Lucene 实战(第2版)
    1891+

    本站勉强运行

    1274+

    用户总数

    18394+

    资源总数

    0+

    今日更新

    2022-6-7

    最后更新时间