Solr術語介紹:SolrCloud,單機Solr,Collection,Shard,Replica,Core之間的關系


Solr有一堆讓人發暈的術語如:collections,shards,replicas,cores,config sets.

在了解這些術語之前需要先做做如下功課:

1)什么是倒排索引?

2)搜索引擎是怎么工作的?

Solr術語介紹

Collections:SolrCloud集群中的一個完整的邏輯上的倒排索引(什么是倒排索引?),和一個獨立的config set相關聯,由一個或者多個shard組成,shard可以在不同的服務器上,shard對搜索接口的調用者來說是隱形的,搜索者不用考慮在搜索時如何指定shard,只需要傳入Collection名即可。

Config Set:包含兩個最根本的配置文件:solrconfig.xml和schema.xml,視這兩個文件的內容而定是否需要包含其他文件。SolrCloud的config set目錄會上傳到zookeeper中,而傳統單機Solr的config set是保存在本地文件夾中。

Core:一個Solr Core是一個包含索引和配置文件的運行實例,以前Solr Core是單例模式的,后來重構成了多實例的,(什么是SolrCores?)。一個Replica對應一個Core實例,同一個Shard對應的Replica的Core的配置和索引數據是一樣的,但是是不同實例。

Replica:Shard的一個副本。一個Shard會在不同的服務器上保留Repicas(副本),通過選舉機制(和zookeeper的leader選舉機制類似)在Replicas(副本)中選出一個leader來對外提供服務。leader連不上了就重新選其他副本作為leader,這樣能保證至多(副本數-1)台服務器掛掉后仍然能正常工作。

Shard:Collection的一個邏輯分片。每個Shard對應一個Core,並且包含一個索引(Collection)的文檔(Documents)的不相交子集,一個Shard由至少一個Replica組成,當有多個Replicas時,選舉機制選出作為leader的Replica。單機Solr中,Shard指的是Solr cores.

Zookeeper:分布式集群的基本組件,MapReduce、HDFS、Hive等分布式系統都基於它,Leader選舉也要靠它。Solr有自己的內嵌Zookeeper,但是一般不會用內嵌的。部署Zookeeper至少需要3台主機(出於節約成本,可以和Solr實例部署在相同的服務器上,目前很多Solr users都是這么用的)。

 

各個術語之間對應關系圖

 (作者:卡爾 http://www.cnblogs.com/arli)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM