SolrCloud实战(二):索引集collection操作

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SolrCloud实战(二):索引集collection操作相关的知识,希望对你有一定的参考价值。

参考技术A 本篇文章用来介绍下在SolrCloud操作索引集collection操作API。

先简单介绍下索引集概念

如图所示:
(1)物理结构
      三个Solr实例( 每个实例包括两个Core),组成一个SolrCloud。

(2)逻辑结构
      索引集合包括两个Shard(shard1、shard2),每个shard由三个core组成,其中一个Leader两个Replication。
      Leader是由zookeeper选举产生,zookeeper控制每个shard上三个Core的索引数据一致,解决高可用问题。
      并且用户发起索引请求分别从三个分片上获取,解决高并发问题。
      每个Core是Solr中一个独立运行单位,提供 索引和搜索服务。一个shard需要由一个Core或多个Core组成。由于collection由多个shard组成所以collection一般由多个core组成。

下面介绍下SolrCloud下的索引集相关操作API。

创建Collection前需要先将配置上传到zookeeper的/solr/configs下。

这里_default是默认的配置文件,SolrCloud搭建启动后默认上传到zookeeper中。
book就是我定义上传的配置文件。下面开始介绍如何上传配置文件。

(1)创建配置文件
从solr的默认配置文件拷贝一份出来

(2)修改配置book/managed-schema
在根节点下面添加字段

(2)修改配置book/schema.xml
这里修改下其中的软硬提交方式。
这里先提个概念“硬提交是关于持久化的,软提交是关于可见性的”。后续再研究下软提交、硬提交的作用。

(3)上传配置到zookeeper
使用solr的zkcli.sh脚本执行上传配置

-zkhost --- zookeeper地址,由于SolrCloud部署时zookeeper地址带有/solr,这里也得加上。
-cmd upconfig --- 上传命令
-confdir --- 本地配置文件目录
-confname --- 上传到zookeeper中的配置名

上传后zookeeper显示如下配置:

向任一一台solr访问下如下http地址:

name:索引集名
numShards:分片数
replicationFactor:副本数
maxShardsPerNode:每台主机最大分片数
collection.configName:索引配置文件名
这里numShards * replicationFactor <= maxShardsPerNode*solr节点数。

访问http地址结果如下:

(1)此时访问solr,就能看到Collection结构、分片、leader和Replication副本,以及副本core所在节点。

(2)在节点所在主机上
SOLR_HOME所在目录下有core目录
SOLR_DATA_HOME目录下有core对应的索引文件目录

(3)查看任一core的自动生成的core.properties,显示core对应的相关信息。

比如修改了managed-schema,那么同样使用zkcli.sh上传,命令如下:

访问结果如下图所示,所有节点都刷新了。

删除collection,只要访问任意一台solr,http地址如下:

这里简单介绍下collection的基本操作:创建、删除、重载配置。后续继续学习下collection其他API功能。

solr入门之创建solrcloud的collection索引集合


1.上传配置文件到liunx系统中(我们用了堡垒机) 上传方式  rz -e 2.切换到root用户   sudo su - 将你上传的配置文件解压到当前目录后新建一个脚本文件 xxxx.sh内容如下 java -classpath ./:/usr/local/solr/server/solr-webapp/webapp/WEB-INF/lib/* org.apache.solr.cloud.ZkCLI -cmd upconfig -zkhost localhost:2181 -confdir  meixin_suggest  -confname meixin_suggest 里面的路径需要根据你本机的路径来设置一下  大概就是 加载solr下的jar
3 创建collection命令指定名称 分片数目 备份数目 及 配置文件的使用 http://10.125.2.44:8001 /solr/admin/collections?action=CREATE&name=meixin_suggest&numShards=1&replicationFactor= 1& collection.configName=meixin_suggest

参数名

说明

Name

要创建的集合名称

numShards

指定集合Shard的数量

replicationFactor

指定每个Shard副本数量

maxShardsPerNode

每个Solr服务器节点上最大Shard数量

createNodeSet

还不明白什么用

collection.configName

配置的名称(必须已存储在ZooKeeper)使用这个新的集合。如果没有提供创建操作将默认配置名称的集合名称。

如果创建出错删除collection 删除指定的solrcloud中的集合api操作
http://10.125.2.44:8001 /solr/admin/collections?action=DELETE&name=指定集合名称

最后上图留念:




今天还有些工程架构的问题....水平有限,出bug还未调整好


以上是关于SolrCloud实战(二):索引集collection操作的主要内容,如果未能解决你的问题,请参考以下文章

Solr术语介绍:SolrCloud,单机Solr,Collection,Shard,Replica,Core之间的关系

架构实战篇:Spring Boot 集成企业级搜索引擎 SolrCloud

solrcloud 在windows可以集群吗

solrCloud相关的管理命令

Postman接口测试工具实战演练集

13.1SolrCloud集群使用手册之Collections API