使用Solr为应用提供搜索服务(1)了解Solr

本文主要介绍Solr / Solr Cloud的一些概念性的东西,通常概念性的东西是比较抽象不易理解的。阅读本文我的建议是:快速阅读,浅入浅出,不必深究,通过阅读后面的文章及个人经验积累之后再看时便会豁然开朗。

Solr

Solr是一个高性能,采用Java开发,基于Lucene的全文搜索服务器。它易于安装和配置,而且附带了一个基于 HTTP 的管理界面,并对外提供REST API以供各种客户端进行调用。

Solr的工作方式

Solr Cloud

Solr Cloud是Solr官方提供一个高性能、高可用性、可容错的集群方案。在Solr Cloud里面,数据都被分割成多个“块”或者叫做“shards”(分片),使数据能够存放在多台物理机器上,并且使用replicas(复制块)提供的冗余来实现可伸缩性和容错性,该系统使用一个或多个Zookeeper服务来帮助管理整个集群结构保证了所有的索引和搜索请求能够正确的被路由到不同的节点。

Solr Cloud的工作方式

Solr Cloud中的一些概念

  • Core: 一个Solr中包含一个或者多个Solr Core,每个Solr Core可以独立提供索引和查询功能,每个Solr Core拥有独立的配置文件。在Solr Cloud中Core通常为一份Shard 或Replica,并不能独立提供服务。
  • Config Set: Solr Core提供服务必须的一组配置文件。每个config set有一个名字,最小需要包括solrconfig.xml 和schema.xml ,除此之外,依据这两个文件的配置内容,可能还需要包含其它文件。在Solr Cloud中它存储在Zookeeper中,可以通过API来进行配置文件的CRUD操作。
  • Collection:在Solr Cloud中逻辑意义上的完整的一份索引,由多个Core(Shard、Replica)组成。
  • Leader: 赢得选举的Shard replicas。每个Shard有多个Replicas,这几个Replicas需要选举来确定一个Leader。选举可以发生在任何时间,但是通常他们仅在某个Solr实例发生故障时才会触发。当索引documents时,SolrCloud会传递它们到此Shard对应的leader,leader再分发它们到全部Shard的replicas。
  • Replica: Shard的一个副本。
  • Shard: Collection的逻辑分片。
  • Zookeeper: 在Solr Cloud中使用Zookeeper来对集群中个节点状态进行监听、Leade的选举、数据路由、配置文件统一管理。

关于Solr Cloud的一些概念图

Collection 逻辑图
SolrCloud 与 Collection 完整关系图
Solr Cloud创建索引的过程图
Solr Cloud查询索引的过程图

下篇文章:搭建&配置

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 75,765评论 12 117
  • 两年前用过solr5.1版本的,当时只是简单入个门,拿来在项目里建个全文索引,然后再query,其他什么也没做,还...
    Coselding阅读 1,958评论 3 22
  • kafka数据可靠性深度解读 Kafka起初是由LinkedIn公司开发的一个分布式的消息系统,后成为Apache...
    it_zzy阅读 994评论 2 19
  • 转帖:原文地址http://www.infoq.com/cn/articles/depth-interpretat...
    端木轩阅读 1,174评论 0 18
  • 微小说又要搞事情啦!前排的请注意,搬好小板凳,第二期活动又来啦!(激不激动,惊不惊喜!) 有人看到秀才遇到兵的主题...
    尹小莫阅读 401评论 24 8