描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787121311659
1 Solr 入门………………………………………………………………………. 2
1.1 为什么需要搜索引擎 ………………………………………………………………………….. 3
1.1.1 管理以文本为中心的数据 ………………………………………………………… 3
1.1.2 常见的搜索引擎用例 ……………………………………………………………….. 6
1.2 Solr 是什么 …………………………………………………………………………………………. 8
1.2.1 信息检索引擎 ………………………………………………………………………….. 9
1.2.2 灵活的模式管理 …………………………………………………………………….. 11
1.2.3 Java Web 应用 ………………………………………………………………………… 12
1.2.4 一台服务器上的多个索引 ………………………………………………………. 13
1.2.5 可扩展性(插件) …………………………………………………………………… 13
1.2.6 可伸缩性 ……………………………………………………………………………….. 14
1.2.7 容错性 …………………………………………………………………………………… 15
1.3 选择Solr 的理由 ……………………………………………………………………………….. 15
1.3.1 面向软件架构师的Solr ………………………………………………………….. 15
1.3.2 面向系统管理员的Solr ………………………………………………………….. 16
1.3.3 面向CEO 的Solr …………………………………………………………………… 17
1.4 功能概述 ………………………………………………………………………………………….. 17
1.4.1 用户体验功能 ………………………………………………………………………… 17
1.4.2 数据建模功能 ………………………………………………………………………… 19
1.4.3 Solr 4 的新功能 ……………………………………………………………………… 20
1.5 本章小结 ………………………………………………………………………………………….. 22
2 Solr 上手……………………………………………………………………..23
2.1 开始上手 ………………………………………………………………………………………….. 24
2.1.1 Solr 的安装 ……………………………………………………………………………. 24
2.1.2 启动Solr 的示例服务器 …………………………………………………………. 25
2.1.3 了解Solr 主目录 ……………………………………………………………………. 29
2.1.4 对示例文档进行索引 ……………………………………………………………… 30
2.2 一切都关乎搜索 ……………………………………………………………………………….. 31
2.2.1 Solr 查询表单详解 …………………………………………………………………. 31
2.2.2 Solr 的搜索返回机制 ……………………………………………………………… 34
2.2.3 排名检索 ……………………………………………………………………………….. 36
2.2.4 分页和排序 …………………………………………………………………………… 36
2.2.5 扩展的搜索功能 …………………………………………………………………….. 38
2.3 Solr 管理控制台一览 …………………………………………………………………………. 40
2.4 根据需求改造搜索示例服务器 ………………………………………………………….. 42
2.5 本章小结 ………………………………………………………………………………………….. 43
3 Solr 基础理论……………………………………………………………….45
3.1 搜索、匹配与找寻内容 …………………………………………………………………….. 46
3.1.1 何为文档 ……………………………………………………………………………….. 46
3.1.2 基本搜索问题 ………………………………………………………………………… 47
3.1.3 倒排索引 ……………………………………………………………………………….. 50
3.1.4 词项、短语与布尔逻辑 ………………………………………………………….. 51
3.1.5 找到文档集 ……………………………………………………………………………. 53
3.1.6 短语查询与术语位置 ……………………………………………………………… 55
3.1.7 模糊匹配 ……………………………………………………………………………….. 57
3.1.8 快速小结 ……………………………………………………………………………….. 61
3.2 相关度 ……………………………………………………………………………………………… 61
3.2.1 默认相似度 ……………………………………………………………………………. 62
3.2.2 词项频次 ……………………………………………………………………………….. 63
3.2.3 反向文档频次 ………………………………………………………………………… 64
3.2.4 词项权重 ……………………………………………………………………………….. 65
3.2.5 规范化因子 ……………………………………………………………………………. 66
3.3 查准率与查全率 ……………………………………………………………………………….. 67
3.3.1 查准率 …………………………………………………………………………………… 67
3.3.2 查全率 …………………………………………………………………………………… 68
3.3.3 达到平衡 ……………………………………………………………………………….. 69
3.4 搜索的规模化 …………………………………………………………………………………… 70
3.4.1 非规范化文档 ………………………………………………………………………… 70
3.4.2 分布式搜索 ……………………………………………………………………………. 72
3.4.3 集群vs. 服务器 ………………………………………………………………………. 73
3.4.4 Solr 的局限 ……………………………………………………………………………. 74
3.5 本章小结 ………………………………………………………………………………………….. 75
4 配置Solr……………………………………………………………………..77
4.1 solrconfig.xml 文件概览 …………………………………………………………………….. 80
4.1.1 常见的XML 数据结构和数据类型元素 ………………………………….. 82
4.1.2 配置文件更新的应用 ……………………………………………………………… 82
4.1.3 Solr 的其他配置 …………………………………………………………………….. 83
4.2 查询请求处理 …………………………………………………………………………………… 85
4.2.1 请求处理简介 ………………………………………………………………………… 86
4.2.2 搜索处理器 ……………………………………………………………………………. 88
4.2.3 Solritas 的browse 请求处理器示例 …………………………………………. 90
4.2.4
译者序
搜索无处不在 ,搜索已经融入我们工作、生活的方方面面。除每天使用的通用搜索引擎以外,几乎我们使用的所有互联网应用、ERP、企业内联网等都提供(或应该具备)了搜索功能。我们向搜索引擎发出查询请求后,很快就能得到一大堆相关的搜索结果,它是怎么做到的呢?这是搜索引擎的黑箱秘密。开源搜索技术Solr& Lucene 是一套很好的技术工具,能够帮助我们打开这一黑箱,洞悉搜索引擎背后的技术原理与运行机制,并能够借此“真枪实干”地做搜索。
一种观点认为,搜索引擎是信息检索系统的一种类型,即面向网络环境中的海量异构数据的采集、组织与检索。在学科专业领域中,信息检索的研究一直以来都是象牙塔里的一门高深学问。Solr & Lucene 的出现拉近了信息检索学术界与搜索引擎业界之间的距离,加速了搜索应用的设计与开发,新的模型算法与搜索功能在Solr 的开发技术架构中得以快速转化与实现。
信息检索是“用户需求(行为)—搜索技术(引擎)—信息资源(集合)”三位一体的复合研究主题。搜索研究的原始起点是用户需求与搜索行为,搜索引擎技术是将用户需求与信息资源进行相关度匹配的重要中介手段。没有搜索技术就无从着手开发,不关注用户需求与搜索行为的话,搜索就无从谈起。那么,如何全面理解搜索并开发搜索应用?为了回答这个问题,《Solr 实战》的内容安排试图在技术、资源与用户三者之间找到一种平衡。本书以用户搜索问题解决为导向,通过各种操作实例,全面系统化地介绍了Solr 的主要功能与使用方法。由于搜索引擎技术体系庞大,涉及数据采集(网络爬虫)、文本处理、自然语言处理、索引、搜索及其他许多方面,要把这么多理论内容和实践操作放进一本书里,着实不是一件容易的事情,然而本书作者做到了!本书虽然也算得上是一本大部头,但相较于很多大部头技术书,作者对技术细节与技术复杂度的收放考虑还是比较得当的,同时也兼顾涵盖了分布式SolrCloud、多语种搜索、个性化推荐等热门主题,具有较好的搜索基础普适性与进阶助推性作用。
如果把搜索引擎比作一台汽车,Lucene与Solr 的关系就好比是“ 发动机”与“造车平台”。Lucene 提供了核心的索引与搜索功能,Solr 向下对Lucene 进行了底层技术封装,隐藏了大量技术细节,降低了进入搜索应用开发的技术门槛。与此同时,Solr 向上扩展了开放集成的大量高级搜索功能,用来满足各种搜索业务需求。因此,Solr 为我们提供了一个更易于学习、操作与应用的全功能开源搜索平台。面对现实的搜索业务需求,从Solr 入手可以让你进入搜索技术应用层的快车道,通过对Solr的深入了解与搜索业务结合,在解决实际搜索问题的大前提下,继而回归到Lucene内核的学习。当遇到诸如索引效率问题、相关度模型与算法问题时,自然而言地就深入到Lucene 内部了。所以,从搜索应用设计与开发的角度来看,从Solr 入门是一条更有实践效率和学习成就感的途径。
当前开源搜索技术研究与实践非常活跃,这直接反映在了Solr 的版本变化上。2010 年3 月Solr 开源项目与Lucene 开源项目合并之后,Solr 成为Lucene 的一个子项目。从3.1 版本起,Lucene 与Solr 的版本保持了一致。版本更新在索引与搜索性能优化、多元化搜索功能引入、交互体验设计、bug 修复等方面不懈地努力着,但Solr 搜索技术的核心模块并没有发生实质性改变。所以,从搜索技术的学习角度来说,书中使用的Solr 版本是够用的。Solr 5.0 之后涉及少量基础操作命令的变化,但这不影响书中内容的讲解,我们在书中必要的地方做了注释,方便读者对比。当然,寄希望于读完一本书就能胜任搜索开发恐怕是不现实的。面对网上各种碎片化、不同版本的Solr 技术资料,对于初涉搜索技术的入门者而言,以这本大部头作为搜索技术学习的小目标,会是一个不错的选择。
本书的初译按章节分工如下:范炜负责第1、5、6、7、8、16 章,侯任夷负责第2、3 章,金国栋负责第4、12 章,邹婧琳负责第9、10 章,陈皇丹负责第11、13 章,吴亚平负责第14、15 章,张功卫、伍志鹏负责附录与其他翻译资料的整理。终由范炜进行全书的统稿与校对,胡康林参与了校样的审读。
本书的翻译工作历时较长,在此期间王中英与符隆美两位编辑给予了充分信任与理解,并付出了大量辛苦工作,对此表示衷心感谢。鉴于译者专业水平有限,以及专业术语的不一致等问题,译文中难免存在不当之处,恳请读者批评指正。
范炜
2017 年3 月4 日于川大江安河畔
原书推荐序
Solr 拥有悠久而成功的历史,Solr 4 和SolrCloud 开启了全新的篇章。《Solr 实战》的出版非常应景。书中包含清晰的案例、启发性的图表,涵盖了从核心概念到功能的方方面面,有助于你快速掌握Solr。
2004 年,CNET 科技资讯网(现在的CBS 互动媒体公司)的搜索引擎服务提供商不再提供服务,CNET 需要一套搜索替代方案,于是有了Solr。我开始编写Solr的时候,虽然不具备专业搜索背景,但做起来很上手。这可能与我的软件设计理念“要快”有关。这一观点有助于Solr 在传统企业搜索市场以外得以拓展。
截至2005 年年底,Solr 为CNET 旗下的许多网站提供了搜索与分面导航功能,而且很快成为了开源软件。2006 年1 月,Solr 被捐赠给了Apache 软件基金会,成为Lucene PMC 的子项目,与Lucene Java(现在的Lucene Core)是兄弟项目关系。由于Solr 使用Lucene 作为全文搜索核心库,两者的技术开发人员有较大的重合度,2010 年两个项目就合并在一起了。现在Lucene 和Solr 仍然可以分别下载,但它们的开发由一个团队统一进行管理。Solr 版本号跳跃式地匹配了Lucene 版本号,因而两者新版本的发布得以同步。
Solr 4 版本是Solr 的一个重要里程碑,增加了SolrCloud。SolrCloud 拥有一组高度可扩展的功能,包括无单点故障的分布式索引构建。NoSQL 方面的功能扩展包括事务日志、更新持久性、乐观并发与原子更新。Trey 和Timothy 作为Solr 的资深专家和社区成员,他们撰写的《Solr 实战》一书涉及了Solr 重要的新功能,并为Solr 新手提供了很好的起步指引。
原书推荐序
现在Solr 的应用比我预想的要多得多,涉及图书馆集成系统、电子商务平台、数据分析与商务智能产品、内容管理系统及互联网搜索,等等。Solr 从早期只有少数采用者逐渐成长为大规模的全球社区,在用户的帮助和志愿者的积极推动下,不断向前发展。
《Solr 实战》介绍了Solr 使用的知识和技术,这些都是自2004 年以来的开发积累。本书在手,可以助你掌握Solr 的开发。你也可以加入到Solr 的全球社区,推动Solr 更好地发展。
Yonik Seeley
Solr 的创造者
前言
2008 年,我受命接管凯业必达(CareerBuilder)招聘网的搜索技术团队。初使用微软的FAST 搜索平台,但随后我们意识到,搜索对凯业必达招聘网而言非常重要,与其继续依赖搜索服务提供商,不如在团队内培养搜索专家。我随即开始调研同类型的开源搜索软件,发现Solr 似乎满足我们搜索开发所需的大部分核心功能。2009 年夏,经过充分的搜索技术准备之后,我们决定将已有的搜索系统转换到Solr。
Solr 的发展很顺利。Solr 构建在开源搜索库Lucene 之上。2005 年2 月,Lucene正式成为Apache 项目。2006 年Solr 被捐赠给Apache 软件基金会,并于2007年1 月成为Apache 项目。这两项技术的发展都达到了一定规模之后,在2010年3 月合并为一个项目。
2010 年夏,我们的搜索平台完全转换到了Solr。在转换过程中,我们提升了搜索速度,大幅度减少了搜索架构所需的服务器数量,避免了昂贵的软件许可费用,增强了平台的稳定性,从先前依赖搜索服务提供商的外部主导转向内部的搜索自主创新。
当时我们并没有意识到搜索自主创新所带来的附加价值。我们已经能够开发出一整套全新的搜索应用产品,包含关键词搜索、语义搜索、大数据分析及实时推荐引擎。我们将Solr 作为可扩展的搜索架构,一小时内通过数百台服务器处理数十亿级的文档与数百万级的查询请求。我们进入了灵活扩展的云服务时代,在数据爆炸中寻求数据的社会意义与价值。Solr 让我们有能力解决迎头而来的挑战。
当Manning 出版社找到我谈《Solr 实战》一书的写作事宜时,我犹豫了,因为我清楚这是一项艰巨的任务。我提出一个要求:需要一位得力的合作者,而Timothy Potter 正是合适的人选。Tim 拥有多年Lucene 和Solr 搜索方案的开发经验。他利用Solr 和其他大数据前沿技术,在社交数据的文本分析系统构建与实时分析解决方案方面有着丰富经验。多年来,我俩都得到过Solr 社区的诸多帮助。当得知开源社区确实需要一本案例驱动的Solr 指南时,Tim 和我很高兴能撰写《Solr 实战》这本书,为下一代搜索工程师提供帮助。这本书是五年前我们开始接触Solr 时希望看到的,不论你是刚开始学习Solr,还是需要补充搜索知识,希望这本书能够对你有帮助。
致谢
与Solr 一样,这本书的问世离不开广大开源社区成员的支持,在此对他们表示感谢。
? Lucene/Solr 提交者不但能编写令人惊叹的代码,还能提供宝贵的专业知识和建议,同时又能对社区新成员保持足够的耐心。
? 感谢Lucene/Solr 社区的活跃成员积极贡献代码、更新Wiki
评论
还没有评论。