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

阅读 696
收藏 26
2016-10-27
原文链接:www.jianshu.com

本文主要介绍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查询索引的过程图

下篇文章:搭建&配置

评论