Solr SolrCloud相关概念

article/2025/11/4 15:59:16
Solr支持服务器的分布式集群部署,即SolrCloud。在SolrCloud中,一个索引可以被分布到不同的服务器,即不同的node,所有的这些node组成一个collection,并且充分考虑了高可靠性和容错的设计。

SolrCloud使用zookeeper来管理这些服务器,被搜索的文件可以放在任何一个服务器,ZooKeeper会自动管理它们。

一个collection可以把数据(索引文件)拆分成多份,放进几个不同的shard中,一个shard的数据可以有多个备份(replica)。一个shard的多个replica中会有一个leader,由选举程序推选出来。一个replica相当于一个core。

这个功能的主要特性是:
  • 整个集群的配置信息可以集中配置
  • 对于搜索自动负载均衡、出现故障时可以自动切换
  • 集成了ZooKeeper,负责集群的协调和配置


如上图,一个collection(gettingstarted)被拆分到两个不同的shard中,而每个shard都有两个服务器(node)提供负载均衡和遇错切换的服务。这个分布式的结构是由ZooKeeper负责管理的。那些node中,实心圆圈的就是leader。

相关概念:
  • HA:High Availability
  • Node:一个服务器、或虚拟服务器节点,每个node对应一个port向外提供服务。对应于一个JVM。
  • Collection:一个SolrCloud实例,负责对一批数据建立一个索引,并提供基于这个索引的搜索服务
  • Shard:一个SolrCloud中的索引可以被拆分存放到多个shard中
  • Replica:一个shard中的数据,可以有多个副本,就是Replica,其中有一个被推选出来的leader
  • Core:负责处理一个Replica,跟一个node对应
  • Cluster:由ZooKeeper管理的多个Node的集合,对solr的请求可以发送给一个cluster

Shard的数量决定了索引是如果被拆分的,所以,当一个cluster初始化完成之后,shard的数量是不能改的。

创建一个新的core并加入到一个Collection和shard中:
curl 'http://localhost:8983/solr/admin/cores?  action=CREATE&name=mycore&collection=my_collection&shard=shard2'

Shard的迁移:
如果原来只有一个机器、或只有少量机器,可以先规划好shard的数量并启动,然后等有新的机器之后,在新的机器中为某个shard启动一个新的replica,然后把原来的shard移除,这样ZooKeeper就会把新的replica提升为这个shard的leader了。

Leader和Replica:
如果Solr启动的时候,参数numShards=2,那么前两个启动的node就是leader,分别服务于这两个shard,第三个和之后启动的node就是replica,他们会依次按照那两个leader加入cluster的顺序分配给那两个leader(使用round-robin的方式)。也可以在启动node的时候使用shardId参数直接把这个node分配给某个shard。当solr重启的时候,所有的node还是归属到重启之前所归属的shard,同个shard中先启动的node就是leader(first come first served)。

当一个leader无法工作的时候,这个shard中的某一个replica会被自动推选为leader。

在Solr Admin UI界面中,Cloud菜单里面可以看到哪个是Leader(实心圆圈者)。

新的文档可以被送往任何一个node,SolrCloud会自动把它们分配到合适的shard中:
  • 如果文档被送到一个replica中,那么这个replica会把这些文档发送给这个shard的leader
  • 当一个leader接收到文档的时候,SolrCloud会决定这些文档应该分配到哪个shard,然后把它们发生给这个shard的leader、建立索引、并把索引发送给这个shard中所有的replica

添加shard:
如果需要加多一个shard,可以使用Collections API,创建两个新的shard,再把现有shard中的索引分配到这两个新Shard中。旧的shard需要手动删掉。




http://chatgpt.dhexx.cn/article/Z1AtR9G5.shtml

相关文章

SolrCloud概述

在Lucene/Solr的SVN trunk中的SolrCloud已经可用, 在即将发布的4.0版本中将正式包含. 目前SolrCloud已经成熟, 可以支持分布式索引和分布式搜索. 下面是我们一个项目采用新的SolrCloud的部署结构图: 看起来是否非常简单? 下面我们看看内部的一些实现细节. SolrCloud功能和架…

solr8.9部署solrcloud

安装solr tar xf solr-8.9.0.tgz cd solr-8.9.0 ./bin/install_solr_service.sh /root/solr-8.8.2.zip -d /data/solr -u solr -n # /root/solr-8.8.2.zip 指定tar包 # -d: 指定solr可写目录,solr数据文件、日志、pid文件、索引会写入到此目录下。默认/var/solr #…

搭建SolrCloud的详细步骤

###一、需求 SolrCloud(solr 云)是Solr提供的分布式搜索方案,当你需要大规模,容错,分布式索引和检索能力时使用 SolrCloud。 当一个系统的索引数据量少的时候是不需要使用SolrCloud的,当索引量很大,搜索请求并发很高&a…

SolrCloud Collection 创建

环境版本: CDH 5.12.0; Solr 4.10.3 CDH搭建SolrCloud集群十分方便,添加服务->solr->选择主机->next即可 在SolrCloud中,跨多个节点的索引分割称为集合(collection),见下图: [root@DXHY-YFEB-01 solr]# pwd /var/lib/solr [root@DXHY-YFEB-01 solr]# mv Invoi…

solrcloud集群搭建

什么是SolrCloud 什么是SolrCloud SolrCloud(solr 云)是Solr提供的分布式搜索方案,当你需要大规模,容错,分布式索引和检索能力时使用 SolrCloud。当一个系统的索引数据量少的时候是不需要使用SolrCloud的,当索引量很大&#xff0c…

Apache SolrCloud介绍及安装

SolrCloud介绍 在我们应用还很渺小的时候,一台Solr服务器能完全胜任这份工作,随着我们应用慢慢长大,访问也越来越多,一台Solr服务器的弊病也逐渐显现如查询变慢了,机器宕机就无法继续提供服务,于是乎我们引…

solr集群(solrcloud)部署搭建

简介 SolrCloud 旨在提供一个高度可用、容错的环境,用于跨多个服务器分发索引内容和查询请求。它是基于 Solr 和Zookeeper的分布式搜索方案,它的主要思想是使用 Zookeeper作为集群的配置信息中心。它是灵活的分布式搜索和索引,无需主节点来分…

SolrCloud之solr单机搭建使用

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 第一章 zookeeper的搭建 及启动脚本 第二章 solr单机搭建使用 第三章 solrCloud搭建及演化 文章目录 前言 随着互联网技术的不断迭代更新,分布式技术也越…

SolrCloud 搭建之 zookeeper搭建

系列文章目录 第一章 zookeeper的搭建 及启动脚本 第二章 solr单机搭建使用 第三章 solrCloud搭建及演化 文章目录 前言 随着互联网技术的不断迭代更新,分布式技术也越来越重要,很多人都开启了学习模式,本文就介绍了solr搭建及使用的基础…

solrCloud搭建及演化

系列文章目录 第一章 zookeeper的搭建 及启动脚本 第二章 solr单机搭建使用 第三章 solrCloud搭建及演化 文章目录 前言 solr是一个web项目,上一节我们部署了solr的单机版,实际上solrcloud是多个tomcat的组合,将多个tomcat部署之后&#…

SolrCloud原理

本文为调研分布式检索系统的笔记整理,之前调研sphinx和coreseek的时候,发现国内的博客,还是讲怎么配置怎么安装多,原理性的东西并不多。本文为:官网文档阅读笔记(有些会附带上文档英文原文, 如果…

SolrCloud简介

原文地址:http://www.chepoo.com/solrcloud-introduction.html 一.简介 SolrCloud是Solr4.0版本以后基于Solr和Zookeeper的分布式搜索方案。SolrCloud是Solr的基于Zookeeper一种部署方式。Solr可以以多种方式部署,例如单机方式,多机Master-S…

Solr云(SolrCloud)

SolrCloud只是作为Solr的一个突出特性,这个特殊的特性能够实现分布式功能。利用这个功能,你能建立高效、容错的Solr服务器群。这对于访问量规模巨大的企业级应用来说,使用SolrCloud能实现高有效性、容错性、分布式索引和搜索功能。 1 了…

solrcloud入门详细使用教程

一、solrcloud介绍 solrcloud是solr提供的分布式的搜索方案,当我们需要大规模,容错,分布式搜索和索引时使用solrcloud。当系统的索引量少,请求并发性低的时候不需要用到solrcloud。solrcloud是基于solr和zookeeper的分布式搜索方案…

Solr--SolrCloud简介与集群搭建

Solr 集群(SolrCloud) 1 什么是 SolrCloud SolrCloud(solr 云)是 Solr 提供的分布式搜索方案,当你需要大规模,容错,分布式索引和检索能力时使用 SolrCloud。当一个系统的索引数据量少的时候是不需要使用 SolrCloud 的,当索引量很大…

SolrCloud详解及搭建

1. 什么是SolrCloud 1.1. 什么是SolrCloud SolrCloud(solr 云)是Solr提供的分布式搜索方案,当你需要大规模,容错,分布式索引和检索能力时使用SolrCloud。当一个系统的索引数据量少的时候是不需要使用SolrCloud的,当索引量很大&am…

SolrCloud简介——solr 名词解释

转自——找不到出处了。。 一.简介 SolrCloud是Solr4.0版本以后基于Solr和Zookeeper的分布式搜索方案。SolrCloud是Solr的基于Zookeeper一种部署方式。Solr可以以多种方式部署,例如单机方式,多机Master-Slaver方式。 二.特色功能 SolrCloud有几个特色…

MySQL全文索引功能

说明自然语言全文索引布尔全文索引 相关性计算 扩展查询 官网地址:https://dev.mysql.com/doc/refman/5.7/en/fulltext-search.html 说明 简介 1).MySQL中的全文索引是FultLeXT类型的索引。 2).全文索引只能用于InnoDB或MyISAM表,只能为CHAR、VARCHAR或文本列创建…

Mysql——全文索引

概念: 一般查询都是根据数值范围或者精准的字符串进行数据过滤查询,而全文索引则通过关键字的匹配来进行查询过滤,那么就需要基于相似度的查询,而不是原来的精确数值或字符串比较。 版本支持: 在MySQL 5.7.6之前&am…

全文索引原理详解

一、总论 根据http://lucene.apache.org/java/docs/index.html 定义: Lucene 是一个高效的,基于Java 的全文检索库。 所以在了解Lucene之前要费一番工夫了解一下全文检索。 那么什么叫做全文检索呢?这要从我们生活中的数据说起。 我们生活中的…