转载请声明出处,谢谢。翻译也很辛苦
solr学习交流扣扣群340954928
1.2.4。在一个服务器的多个索引
现代应用程序体系结构的一个特点是在面对需要灵活性快速变化的需求。的方法之一Solr帮助在这种情况下是你不需要做所有的事情在Solr索引,因为Solr支持运行多个核心在一个引擎。在图1.3中,我们已经描述了多个核心作为单独的层在相同的Java web应用程序环境中运行。
认为每个核心作为一个单独的指数和配置,可以有许多核心一个Solr实例。这允许您管理多个核,以便从一个服务器你可以共享服务器资源,监控等管理任务维护。Solr提供了一个API来创建和管理多个核心,将在第12章覆盖。
一个使用Solr的多核支持数据分区,如要为最近的一个核心文档和年长的另一个核心文件,称为时间分片。另一个使用Solr的多核支持是支持多租户应用程序。
在我们的房地产应用程序中,我们可能会使用多个核心管理不同类型的上市足以证明不同有不同的索引。考虑实际房地产上市公司的农村土地,而不是家庭。购买农村土地是一个不同的过程比在城市买房子,所以,有理由,我们可能想要管理我们土地上市在一个单独的核心。
1.2.5。可扩展(插件)
图1.3描述了Solr的三个主要的子系统:文档管理、查询处理和文本分析。当然,这些是复杂的高级抽象,在Solr子系统;我们在后来书中将了解每一个。每个系统是由模块化的“管道”,允许您插入新的功能。这意味着而不是在Solr方法将覆盖整个引擎,你插入一个新搜索组件到现有的管道。这使得核心Solr功能易于扩展和定制,以满足您的特定应用程序的需求。
1.2.6可伸缩的
Lucene是一个极其快速搜索库,Lucene和Solr充分利用的速度。但无论Lucene是多快,单个服务器如何将达到极限它可以处理许多并发查询从不同用户由于CPU和I / O约束。
作为第一步实现可伸缩性,Solr提供灵活的cache-management特性帮助你的服务器重用计算昂贵的数据结构。具体来说,Solr是预先配置的缓存节省昂贵的recomputations,等缓存查询筛选的结果。我们将在第四章了解Solr的cache-management特性。
只缓存让你到目前为止,在某些时候你需要向外扩展查询处理更多的文件和更高的吞吐量能力通过添加更多的服务器。现在,让我们关注的两种最常见的维度在Solr-query可伸缩性吞吐量和文件索引的数量。查询吞吐量的数量查询你的引擎可以支持每秒。虽然Lucene可以执行每个查询很快,有限的并发请求一个服务器可以处理多少。为更高的查询吞吐量,你添加副本索引,以便更多的服务器处理更多的请求。这意味着如果你的指数跨三个服务器复制,你可以处理大约三倍的每秒查询,因为每个服务器处理查询交通的三分之一。在实践中,很少达到完美的线性可伸缩性,所以添加三个服务器可能只允许您处理两倍半查询一个服务器。
可伸缩性的其他维度是索引文件的数量。如果你处理大量,那么你可能会达到一个点你有太多一个实例文档,查询性能将会受到影响。处理更多的文档,您将索引拆分为多个较小的数据块碎片,然后分发
搜索整个碎片。
一个趋势在现代计算是构建软件体系结构可以扩展使用虚拟化的硬件水平。添加更多的服务器
处理更多的流量。使用虚拟化的硬件都加剧了这一趋势云计算提供商如Amazon EC2。虽然Solr将运行在虚拟化硬件,您应该清楚,搜索是I / O和内存密集型。因此,如果搜索性能是您的组织的首要任务,你应该考虑部署Solr在高端硬件高性能磁盘,理想的固态硬盘(ssd)。硬件考虑部署Solr在12章进行了讨论。
可伸缩性是很重要的,但是生存能力为现代失败也很重要系统。在下一节中,我们将讨论如何Solr处理软件和硬件故障。
1.2.7。容错
除了可伸缩性,您需要考虑如果一个或更多的服务器失败,尤其是如果你打算Solr部署在虚拟硬件或商品硬件。底线是你必须计划失败。即使是最好的架构最高端硬件将会经历失败。
让我们假设你为指数,有四个碎片和服务器托管shard2失去权力。在这一点上,Solr不能继续索引文件,不能服务查询,你的搜索引擎实际上是失望。为了避免这种情况,您可以添加的复制品每一个碎片。在这种情况下,当shard2失败,Solr引导交通的索引和查询复制品,Solr集群仍然在线。这个失败的结果是,索引和查询仍然可以处理,但他们可能没有那么快,因为你有一个更少的服务器来处理请求。我们将讨论故障转移场景在12和13章。
至此,您已经看到,Solr一个现代的、精心设计的体系结构具有可扩展性和容错性。虽然这些方面考虑如果你很重要已经决定使用Solr,你仍然可能不会相信Solr是正确的选择为您的需要。在下一节中,我们描述的好处Solr的角度不同的利益相关者,如软件架构师、系统管理员和CEO。
1.3。Solr的原因?
在本节中,我们提供关键信息,帮助您决定如果Solr是正确的技术为您的组织。我们首先解决为什么Solr吸引软件架构师。
1.3.1。Solr软件架构师
当评估新技术,软件架构师必须考虑许多因素包括稳定性、可伸缩性和容错。Solr在三个类别分数都是高分。
在稳定性方面,Solr是一个充满活力的社区和成熟的技术支持经验丰富的提交者。一件事冲击新用户Lucene和Solr是它不是闻所未闻的部署从源代码直接从主干,而不是等待进行正式发布。我们不建议你无论如何这是可以接受的您的组织。我们只指出这一点,因为它是一个深度和证明广度Lucene和Solr的自动化测试。如果你有一个每夜构建了树干所有自动化测试通过,那么你可以相当自信的核心
功能是固体。
我们已经接触了Solr的方法在部分1.2.6中可扩展性和容错性1.2.7。作为架构师,您可能最好奇Solr的局限性的可伸缩性和容错方法。首先,你应该认识到,分片和Solr复制特性得到改善在Solr 4健壮和容易管理。扩展的新方法被称为SolrCloud。在后台,SolrCloud使用Apache zookeeper分配在一个Solr服务器集群和配置跟踪集群的状态。这里有突出的新SolrCloud特点:
•集中配置。
•分布式索引没有单点故障(SPoF)。
•自动故障转移到一个新的碎片的领导者。
•查询可以发送到任何节点在一个集群中触发一个完整的、分布式搜索在所有的碎片,在故障转移和负载平衡支持下建成的
这并不是说,Solr扩展没有改进的余地。SolrCloud仍然时需要人工交互修改搜索索引的大小(或合并
分裂index),并不是所有的Solr功能工作在分布式模式。我们将进入所有在第12章的细节扩展Solr,尤其是SolrCloud的新特性在第13章,但我们要确保架构师都知道,Solr扩展已经走了在过去的几年里,现在没有SPoF使强大的扩展。
1.3.2。Solr的系统管理员
作为系统管理员,高你的问题对采用新技术像Solr是否它适合你现有的基础设施。最简单的答案是:是的。Solr是基于java的,它运行在任何操作系统平台,J2SE 6. x / 7。x JVM。除了盒子,Solr Jetty,Oracle提供的开源Java servlet引擎。否则,Solr是一个标准的Java web应用程序轻松部署到任何Java web
应用程序服务器如JBoss或Apache Tomcat。
所有访问可以通过HTTP,Solr和Solr是设计用于处理HTTP缓存反向代理像鱿鱼和清漆。Solr还与JMX,所以你可以钩你最喜欢的监视应用程序,比如Nagios
另外,Solr提供了一个不错的管理控制台检查配置设置,查看统计信息,发布测试查询和监控SolrCloud的健康。图1.4是一个截图的Solr 4管理控制台。我们会在第二章了解更多。
图1.4。Solr的截图4管理控制台,你可以发送测试查询,ping服务器,查看配置设置,,看到了吗你的碎片和副本是如何分布在集群。
1.3.3。Solr的首席执行官
虽然不太可能,许多首席执行官会读这本书,这里有一些关键的谈话关于Solr,以防你的CEO停止你在大厅里。
•高管今天想知道投资技术将还清从长远来看。你可以强调,许多公司仍然运行在Solr
1.4,在2009年被释放,这意味着Solr成功的记录和不断改善。
•ceo像技术可以预测的。在下一章中你会看到,Solr“工作”,你可以在几分钟内运行起来。
•Solr有一个很大的支持社区。会发生什么如果Solr的家伙走了门,业务会停止吗?的确,Solr是复杂的技术,但是它背后有一个活跃的社区意味着你有帮助当你需要它。您还可以访问源代码,这意味着,如果东西坏了需要修改,你可以自己做。许多商业服务提供商还帮助你计划、实现和维持你的安装Solr,和许多的报价Solr的培训课程。
•Solr开始不需要太多的初始投资。(这可能是一个更感兴趣的参数,首席财务官)。不知道你的大小和规模环境中,我们有信心说,您可以启动Solr服务器几分钟,快速索引文件。服务器在云中运行可以处理数以百万计的文档和查询以亚秒级响应时报》表示。
1.4。功能概述
最后,让我们做一个快速的Solr的主要特性,围绕以下类别:
•用户体验
•数据建模
•Solr 4新特性
提供一个良好的用户体验与搜索解决方案将是一个共同的主题在本书中,所以让我们先看到Solr如何帮助让你的用户高兴。
1.4.1。用户体验功能
Solr提供了许多重要的功能,帮助您交付的搜索解决方案易用、直观的和强大的。然而,你应该注意,Solr只公开了一个REST-like HTTP API和没有提供搜索相关UI组件在任何语言或框架。你要卷起袖子和开发自己的搜索UI组件,利用下面的用户体验的一些特点:
•分页和排序
•层面搜索
•自动建议
•拼写检查
•高亮
•地理空间搜索
分页和排序
而不是返回所有匹配的文档,Solr是优化翻页请求,只返回前N文档第一页。如果用户不找到他们正在寻找在第一个页面中,您可以请求使用后续页面简单的API请求参数。分页有助于两个主要成果:(1)的结果更迅速地返回,因为每个请求只返回的一个小子集搜索结果;(2)它可以帮助您跟踪多少查询导致要求更多页面,这可能是一个迹象表明relevance-scoring问题。您将了解在第7章的分页和排序。
层面搜索
分类为用户提供工具来优化他们的搜索条件,发现更多通过搜索结果分类到子组使用方面的信息。在我们的房地产示例(图1.1),我们看到搜索结果从一个基本的关键字搜索组织成三个方面:功能,风格,和清单类型。分类是其中一个更受欢迎的和强大的功能在Solr;我们在第八章深入讨论它。
自动建议
大多数用户会期待你的搜索应用程序“做正确的事,”即使他们提供不完整的信息。自动建议允许用户看到建议的条款和列表基于文档索引的短语。Solr的自动建议功能允许用户开始输入几个字符和获得建议的列表查询每个按键。这减少了许多不正确的查询,特别是因为很多用户从一个移动设备用小键盘搜索。
自动建议给用户可用的术语和短语指数的例子。提到房地产的例子,作为一个用户类型以及……Solr的自我暗示功能可以返回建议像“高地社区”或“高地牧场。“我们在第十章盖自动建议
拼写检查
移动设备和时代的人们,拼写校正的支持是至关重要的。再一次,用户希望搜索引擎来处理拼写错误。Solr的拼写检查程序支持两种基本模式:
•自动更正- Solr可以自动拼写校正,根据索引中是否存在拼写错误的词。
•你的意思- Solr可以返回一个建议可能产生更好的查询结果,这样您就可以显示一个提示给用户,如“你的意思高地吗?“如果你在hilands用户输入。
拼写校正调整在Solr 4更容易管理和维护;我们将会看到在第十章这是如何工作的。
高亮
当搜索大量的文本文件,您可以显示每个文档的特定部分使用Solr的hit-highlighting特性。最有用的
长格式文件,强调帮助用户找到相关文档突出显示的部分搜索结果匹配用户的查询。部分生成
根据相似度来动态查询。我们在第9章介绍。
地理空间搜索
地理位置是一个一流的概念在Solr 4中,它有内置的支持索引纬度和经度值以及排序或排名文档地理上的距离。Solr可以发现地理位置距离和类文件(经度和纬度)。在房地产的例子中,匹配清单上显示
用户的互动地图,使用地理空间搜索,可以放大/缩小和移动地图的中心点找到附近的清单。
另一个激动人心的除了Solr 4就是你可以索引地理形状等多边形,它允许您找到文档地理区域相交。这可能是有用的在特定的社区使用精确的找到家上市一个社区的地理表示。我们覆盖Solr地理空间的搜索功能在第15章。
1.4.2。数据建模功能
正如我们在1.1节中讨论的,Solr优化处理特定类型的数据。在这节中,我们概述关键特性,可以帮助您搜索模型数据:
•结果分组/领域崩溃
•灵活的查询支持
•连接
•文档聚类
•进口丰富的文档格式,比如PDF和单词
•从关系数据库导入数据
•多语言支持
结果分组/field collapsing
虽然Solr需要统一,规范化的文档,Solr允许你将多个文档作为一个群体基于一些共同财产的所有文档
组。结果分组,field collapsing,也称为字段允许您返回独特组,而不是单个文件的结果。
field collapsing的典型例子是螺纹邮件讨论,电子邮件匹配一个特定的查询可以组合在原始邮件开始谈话的内容。您将了解在11章结果分组/field collapsing。
灵活的查询支持
Solr提供了许多强大的查询功能,包括
•使用条件逻辑,或者,而不是
•通配符匹配
•范围查询日期和数字
•允许一些短语查询条件之间的距离
•模糊字符串匹配
•正则表达式匹配
•函数查询
我们将在第七章介绍他们。
连接
在SQL中,您使用一个连接创建一个关系是从两个或更多的表中获取数据共同使用一个外键等共同财产。在Solr,连接更像SQL子查询,你不通过加入数据从其他文档构建文档。使用Solr连接,您可以返回子文档匹配您的搜索条件的父母。Solr的加入是有用的一个例子是返回所有Twitter消息的转发到一个响应。我们将讨论在15章
文档聚类
文档聚类允许您确定组织的文件,是类似的,出现在每个文档的条款。这有助于避免返回许多包含相同的信息在搜索结果的文档。例如,如果您的搜索引擎是基于新闻文章从多个RSS提要,很有可能你会有
许多文件相同的新闻故事。而不是返回多个结果同样的故事,你可以使用聚类选择一个代表性的故事。聚类技术在16章简要讨论。
引进丰富的文档格式,比如PDF和word
在某些情况下,您可能想要一群共同的现有文档格式PDF和WORD和搜索。Solr这很容易,因为它Apache Tika项目集成,支持最流行的文档格式。进口富格式文件覆盖在12章简要。
从关系数据库导入数据
如果您希望搜索的数据与Solr在关系数据库中,您可以配置Solr使用一个SQL查询创建文档。我们在第12章覆盖Solr的数据导入处理程序(DIH)。
多语种suppor
Solr Lucene的工作有着悠久的历史和多种语言。Solr已经语言检测建于和提供特定于语言的文本分析解决方案多种语言。我们将在第14章会看到Solr的语言检测和多语言文本分析。
1.4.3新功能在Solr 4。
在我们结束这一章之前,让我们来看看一些激动人心的新功能在Solr 4。在通常,Solr 4 Apache Solr社区是一个巨大的里程碑,因为它解决了许多主要的难点由真实用户发现在过去的几年中。我们选择一个这里的一些主要特点突出,但我们也会在整个书指出在Solr 4新特性。
•实时搜索
•与乐观并发原子更新
•实时获取
•使用事务日志写耐久性
•容易使用zookeeper分片和复制
实时搜索
Solr的接近实时(NRT)搜索功能支持的应用程序有一个高速度文件需要被添加到索引的几秒内搜索。与,您可以使用Solr搜索快速变化的内容如突发新闻来源和社交网络。我们在第13章盖NRT。
原子与乐观并发更新
原子更新功能允许客户机应用程序添加,更新,删除和增加字段在一个现有的文档,而不必重新发送整个文档。如果房子的价格在我们的例子中从1.2节房地产应用程序更改,我们可以发送一个原子更新Solr改变价格领域。
您可能想知道如果两个用户试图改变一样同时文档。Solr防范不兼容更新使用乐观并发性。简而言之,Solr使用一个特殊版本字段名为_version_执行安全更新文档的语义。在两个不同的用户尝试更新
同时同一文档,用户提交更新的最后将失效版本字段,所以他们的更新将会失败。原子更新和乐观并发
在第五章介绍。
实时获取
在这一章的开始,我们声明,Solr是NoSQL技术。Solr的实时获取功能绝对符合NoSQL方法允许您检索最新版本的文档使用其独特的标识符,不管文档一直致力于索引。这类似于使用像Cassandra这样的键值存储使用一行键检索数据。
Solr 4之前,文档没有复原,直到它致力于Lucene索引。Solr 4中的实时获取功能,您可以安全地脱钩检索的需要从提交流程文档的惟一ID。这可能是有用的,如果你需要更新现有文档后送到Solr无需先做一个承诺。作为我们将在第5章中学习,提交可以是昂贵的,可以影响查询的性能。
使用事务日志写的耐久性
当一个文档发送给Solr索引、写入事务日志来防止数据丢失在发生服务器故障。Solr客户端之间的事务日志应用程序和Lucene索引。它还在维修中发挥作用实时get请求,文档是可收回的不管他们他们独特的标识符致力于Lucene。
事务日志可以让Solr脱钩更新耐久性从更新可见性。这意味着文档可以持久存储但在搜索结果中不可见。这什么时候提交给您的应用程序控制文件中可见搜索结果也不用担心数据丢失在你提交之前如果服务器失败。我们将讨论耐用和提交策略在第5章写道。
简单使用zookeeper分片和复制
如果你新Solr,你可能没有意识到,扩展Solr是以前的版本通常手册和繁琐的过程。SolrCloud,调整也很简单,自动化因为Solr使用Apache zookeeper分发配置和管理碎片领导人和副本。Apache网站(http://zookeeper.apache.org)描述zookeeper员为“集中服务维护配置信息、命名、提供分布式同步,提供集团服务。”
在Solr,zookeeper员负责分配碎片领导人和副本和保持跟踪哪些服务器可用的服务请求。SolrCloud,所以你不需要做任何额外的配置或设置与SolrCloud开始。我们将在第13章深入的细节SolrCloud。
1.5。总结
我们希望你现在有一个好的感觉和用例Solr支持什么类型的数据。作为您了解了在1.1节,Solrtext-centric的优化处理数据,read-dominant,面向文档的,灵活的模式。我们还了解到,Solr等搜索引擎并不是通用的数据存储和处理的解决方案,但是而是为了权力关键词搜索,排名检索和信息发现。使用一个虚构的房地产搜索应用程序的例子,我们看到Solr构建在Lucene添加声明索引配置和基于web服务HTTP、XML和JSON。Solr 4可以支持数以百万计的两个维度文档和high-query交通使用分片和复制。4没有SPoF Solr使用时在一个分布式SolrCloud配置。
我们还谈到了根据关键利益相关者的角度选择Solr理由。我们看到Solr地址的软件架构师、系统管理员甚至是首席执行官。最后,我们介绍一些Solr的主要特性和给你的指针的地方去了解更多关于每个特性在这本书。我们希望你兴奋继续学习关于Solr;现在下载软件和本地系统上运行它,这正是我们将在第2章。
相关推荐
Solr 数据导入调度器(solr-dataimport-scheduler.jar)是一个专门为Apache Solr 7.x版本设计的组件,用于实现数据的定期索引更新。在理解这个知识点之前,我们需要先了解Solr的基本概念以及数据导入处理...
标题中的“Solr in Action -- Apache Solr 在比价系统中的应用”表明本文将深入讨论Apache Solr搜索服务器在比价系统中的实际应用案例。Apache Solr是一个开源的搜索引擎平台,广泛应用于企业级应用中,以提高搜索...
solr-mongo-importer-1.1.0.jar solr-mongo-importer-1.1.0.jar solr-mongo-importer-1.1.0.jar
在 Solr 的生态系统中,`solr-dataimport-scheduler-1.2.jar` 是一个非常重要的组件,它允许用户定时执行数据导入任务,这对于需要定期更新索引的应用场景尤其有用。这个特定的版本 `1.2` 已经被优化以兼容 `Solr ...
solr-import-export-json最新代码solr-import-export-json最新代码solr-import-export-json最新代码solr-import-export-json最新代码solr-import-export-json最新代码solr-import-export-json最新代码solr-import-...
这里我们将围绕"solr-9.0.0-src.tgz"这个源码包,详细探讨其主要组成部分、核心功能以及开发过程中的关键知识点。 1. **Solr架构** Solr的架构基于Lucene,一个强大的全文搜索引擎库。它提供了分布式、可扩展、高...
经过测试可以适用solr7.4版本。如果低版本solr(6.*) 可以直接适用网上的solr-dataimport-scheduler 1.1 或者1.0版本。
《Solr In Action》中文版第八章主要探讨的是Solr中的分类搜索,也称为分类导航或分类浏览。分类是Solr的一个强大特性,它允许用户根据一个或多个分类过滤搜索结果,提供更丰富的探索和分析体验。本章涵盖的内容包括...
Solr 数据导入调度器(solr-dataimport-scheduler)是一个实用工具,用于自动化Apache Solr中的数据导入过程,尤其适用于需要定期从关系型数据库同步数据的场景。Solr 是一个流行的开源全文搜索引擎,它提供了强大的...
在"solr6--solr-dataimporthandler-scheduler-1.1"这个项目中,我们关注的重点是DIH的调度功能,也就是如何定期自动更新Solr索引。 DataImportHandler(DIH)是Solr的一个插件,用于从关系型数据库或其他结构化数据...
solr 增量更新所需要的包 solr-dataimporthandler-6.5.1 + solr-dataimporthandler-extras-6.5.1 + solr-data-import-scheduler-1.1.2
solr-data-import-scheduler-1.1.2,用于solr定时更新索引的jar包,下载后引入到solr本身的dist下面,或者你tomcat项目下面的lib下面
这是我自己反编译fix后,支持solr7.4高版本的定时增量任务(亲测solr7.4),下载下来开箱即用。低版本的没试过,估计低版本的solr配合之前apache-solr-dataimportscheduler-1.0.jar这些能行,不行就试试我这个。
Solr in Action is the definitive guide to implementing fast and scalable search using Apache Solr 4. It uses well-documented examples ranging from basic keyword searching to scaling a system for ...
"apache-solr-dataimportscheduler-1.0.zip"是一个官方发布的54l版本,专门针对Solr 5.x的定时索引生成需求。 数据导入调度器(DataImportScheduler)是这个扩展的核心组件,它允许用户根据预设的时间间隔自动执行...
在给定的压缩包“apache-solr-dataimporthandler-extras-1.4.0.jar.zip”中,主要包含了一个名为“apache-solr-dataimporthandler-extras-1.4.0.jar”的文件,这个文件是Solr的一个重要组件——DataImportHandler...
"apache-solr-dataimportscheduler.jar" 是一个专门为Solr设计的扩展包,用于实现自动化的数据增量更新调度。 首先,我们要理解Solr的数据导入过程。Solr使用DataImportHandler(DIH)来从关系型数据库、XML文件或...
标题中的"solr-8.11.1-src.tgz"表明这是Apache Solr 8.11.1版本的源代码包,适用于那些希望对Solr进行深度定制或开发的用户。 源代码发布通常包含了编译和构建Solr所需的所有文件,包括Java源代码、配置文件、测试...
使用solr做数据库定时同步更新数据和索引时用到该jar,经过本人测试通过,放心使用. 支持solr5.x,solr6.x
Solr in Action by Trey Grainger , Timothy Potter Book Description Publication Date: April 5, 2014 | ISBN-10: 1617291021 | ISBN-13: 978-1617291029 | Edition: 1 Summary Solr in Action is a ...