Solr有一堆讓人發暈的術語如:collections,shards,replicas,cores,config sets.
在了解這些術語之前需要先做做如下功課:
1)什么是倒排索引?
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)