概述:

     Apache Solr是一个用JAVA语言构建在Apache Lucene项目上的开源的企业级搜索平台。主要特性包含:全文搜索、命中高亮、片段式搜索、实时索引、动态集群、数据库集成、NoSQL特性和富文本处理。提供分布式搜索和索引复制,设计时便充分考虑了扩展和容错能力。Solr目前是第二流行的企业级搜索引擎,第一是ElasticSearch。
     Solr作为一个独立的全文本搜索服务器运行。在内部使用JAVA开发的Lucene完成全文本索引和查询,提供RESTful API完成对大多数编程语言的支持。灵活的外部配置使得可以不用编写任何的JAVA代码就能完成工作,同时还提供了插件式的架构来支持更为高级的用户定制。
     既然这么强大,那它在我们的整体平台中处于一个什么样的位置?

定位:

     下图来自于官方手册的一个例子。
  上图中,Solr运行在其他的服务器应用程序之外。拿仓库平台系统来说,我们要提供一些用户界面:例如,可以发起入库的界面,可以查看库存的界面,可以发起出库的界面,作为库管,可能还需要对不正确的物资信息进行调整。无论入库、出库、查看库存等哪个功能,都是围绕着物资展开的。这些信息会同时存在于平台系统的数据库中和Solr系统中,只不过可能会因为存放在不同系统中所要达到的目的和用处不一样,信息的格式和完整度也会有(或没有)差异。

     因为有了Solr,我们在仓储平台中提升搜索体验也变得更加容易。只需通过如下步骤:
     1、定义Schema。Schema告知Solr将要建立索引的文件内容。以仓储平台为例,Schema中可能需要为物资名称、编码、库存量、生产厂商等定义字段。Solr的Schema强大而有弹性,并且允许你为你的应用系统定义特有的Solr行为。
     2、发布Solr。
     3、为用户将要检索进行的检索提供Solr文件。
     4、在应用程序里实现检索功能。
     Solr建立在开发标准之上,因此具有很高的可扩展性。Solr的查询基于RESTful,也就是说,一个查询的本质就是一个简单的HTTP请求URL和一个结构化的响应文档。响应文档的结构主要包含:XML、JSON、CSV,还有其他格式 。这也意味着,大量的客户应用程序可以使用Solr,比如WEB应用、富客户端应用和移动设备。任何支持HTTP协议的平台都能和Solr进行交互。
     Solr基于Apache Lucene项目,一个高性能、全特性的搜索引擎。Solr支持简单的关键字查询,复杂的多字段查询,以及将结果分片段。
 

扩展性:

     如果单个Solr的能力不够可观,那么它处理非常大量应用程序的能力将能达到理想效果。
     比较常见的场景是:你有大量的数据或者很多的查询,一个单一的Solr服务器无法处理所有的工作负荷。在这种情况下,可以使用SolrCloud来扩展Solr的能力,使得其在多台服务器间能获得更好的分发数据、处理请求的能力。基于你需要获得的扩展能力,大量不同的配置选项需要组合使用。
     例如:分片就是一种扩展方式,它把一个大的集合划分成多个称为"分片"的逻辑块,从而提高一个集合中的文档数量使超过一个单一Solr服务器所允许的物理限度。进入系统的查询会被分发到集合里的每一个分片,然后返回合并的结果。另一种可用的技术是提升集合的“复制因子”,它允许你使用集合的副本添加额外的服务器,通过在多台机器之间传播高并发的查询命令来完成工作。分片和复制并非互不相容的,组合使用能使Solr变成一个更加强大和可扩展的平台。

02 Apache Solr: 概览 Solr在信息系统架构中的位置的更多相关文章

  1. 三层架构中bll层把datatable转换为实体model的理解

    看了很多人的项目,很多都是用到三层架构,其中BLL层中有一种将DataTable转换为实体的方法.一直没有明白为啥要这样做,今天特意去搜索了一下,如果没有答案我是准备提问,寻求解答了.还好找到一个相关 ...

  2. 谈谈三层架构中Model的作用

    Model又叫实体类,这个东西,大家可能觉得不好分层.包括我以前在内,是这样理解的:UI<-->Model<-->BLL<-->Model<-->DAL ...

  3. 微服务架构中的BFF到底是啥?

    在<技术中台与业务中台都是啥玩意>一文中留下一个问题:BFF是啥?为啥在API网关和业务中台之间加入了一层BFF?考虑到在实际工作中,我的大部分同事都问过这个问题,这里我也总结一下进行答复 ...

  4. Solr系列一:Solr(Solr介绍、Solr应用架构、Solr安装使用)

    一.前言 前面已经学习了Lucene的分词.索引详解.搜索详解的知识,已经知道开发一个搜索引擎的流程了.现在就会有这样的一个问题:如果其他的系统也需要使用开发的搜索引擎怎么办呢?这个时候就需要把开发的 ...

  5. 使用 Apache Lucene 和 Solr 4 实现下一代搜索和分析

    使用 Apache Lucene 和 Solr 4 实现下一代搜索和分析 使用搜索引擎计数构建快速.高效和可扩展的数据驱动应用程序 Apache Lucene™ 和 Solr™ 是强大的开源搜索技术, ...

  6. Solr记录-solr基础内容

    Solr架构(体系结构) 在本章中,我们将讨论Apache Solr的架构. 下图显示了Apache Solr的体系结构的框图. Solr架构 - 构件块以下是Apache Solr的主要构建块(组件 ...

  7. Solr记录-solr内核与索引

    Solr核心(内核) Solr核心(Core)是Lucene索引的运行实例,包含使用它所需的所有Solr配置文件.我们需要创建一个Solr Core来执行索引和分析等操作. Solr应用程序可以包含一 ...

  8. Solr记录-solr介绍及配置

    Solr是一个开源搜索平台,用于构建搜索应用程序. 它建立在Lucene(全文搜索引擎)之上. Solr是企业级的,快速的和高度可扩展的. 使用Solr构建的应用程序非常复杂,可提供高性能. 为了在C ...

  9. 转载自lanceyan: 一致性hash和solr千万级数据分布式搜索引擎中的应用

    一致性hash和solr千万级数据分布式搜索引擎中的应用 互联网创业中大部分人都是草根创业,这个时候没有强劲的服务器,也没有钱去买很昂贵的海量数据库.在这样严峻的条件下,一批又一批的创业者从创业中获得 ...

随机推荐

  1. MySQL Workbench “Error Code: 1175” 的解决方法

    转自:http://www.linuxidc.com/Linux/2012-04/59333.htm 当用MySQL Workbench进行数据库的批量更新时,执行一个语句会碰到以下错误提示: Err ...

  2. 慕课网-Java入门第一季-7-4 编程练习

    来源:http://www.imooc.com/code/1634 小伙伴们,请根据所学知识,参考注释,在代码编辑器中将代码补充完整.编写一个 Java 程序,实现输出学生年龄的最大值 要求: 1. ...

  3. java.lang.OutOfMemoryError: Java heap space解决办法

    进入到tomcat/bin目录下,编辑catalina.bat,在这个文件最前面加入一句:set JAVA_OPTS=-Xms384m -Xmx384m 保存退出,重启tomcat服务即可. 该异常应 ...

  4. win2008下安装SQL SERVER 2005出现IIS功能要求 警告解决方案

    原因: 出现此问题的原因取决于 SQL Server 的不是所有 IIS 7.0 组件都安装在计算机上.下表列出了受影响的组件. 收起该表格展开该表格   组件 文件夹 静态内容 常见的 HTTP 功 ...

  5. 你还记得windows workflow foundation吗

    很多年前,windows workflow foundation还叫WWF,而直译过来的名称让很多人以为它就是用来开发工作流或者干脆就是审批流的. 博主当年还是个懵懂的少年,却也知道微软不会大力推一个 ...

  6. Java基础--定时任务Timer

    Java基础--定时任务Timer 一.Timer介绍 java.util.Timer java.util.TimerTask Timer是一个定时器类,通过该类可以为指定的定时任务进行配置.Time ...

  7. NHibernate系列文章二十五:NHibernate查询之Query Over查询(附程序下载)

    摘要 这一篇文章介绍在NHibernate 3.2里引入的Query Over查询,Query Over查询跟Criteria查询类似.首先创建IQueryOver对象,然后通过调用该对象的API函数 ...

  8. 【原创】使用Fiddler抓取手机网络包

    一: 下载安装Fiddler 二: 打开 tools--Telerik Fiddler Options, 进行如下设置

  9. NPM 相关

    1. 官方网站 https://docs.npmjs.com/ 2. 显示Global Module安装过什么 p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font ...

  10. [转]非常实用的15款开源PHP类库

    源文件:http://www.csdn.net/article/2013-10-09/2817123-PHP-Libraries 英文原文:https://codegeekz.com/useful-p ...