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

本篇文章用来介绍下在SolrCloud操作索引集collection操作API。

1、索引集Collection

先简单介绍下索引集概念


image.png

如图所示:
(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。

2、创建索引集

2.1、上传索引配置文件

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


image.png

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

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

$ cd /home/wentian/solr/solrcloud
$ mkdir -p configsets/book
$ cp -rf /home/wentian/app/solr/solr7/server/solr/configsets/_default/* /home/wentian/solr/solrcloud/configsets/book

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

    <!-- 书名 -->
    <field name="bookname" type="string" indexed="true" stored="true"/>
    <!-- 门店id -->
    <field name="shopid" type="string" indexed="true" stored="true"/>
    <!-- 价格,base_price基本价格、shop_price门店价格,pin_price拼团价格 -->
    <dynamicField name="*_price" type="pdouble" indexed="true"  stored="true"/>
    <!-- 是否参与拼团,0-不参与拼团,1-参与拼团 -->
    <field name="isPintuan" type="pint" indexed="true" stored="true"/>

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

#修改提交间隔配置,该配置是对使用该配置的索引集有效。
<autoCommit> 
<!--表示提交达到1万条的时候会自动进行一次硬提交--> 
<maxDocs>10000</maxDocs> 
<!--表示间隔300秒之后会执行一次硬提交--> 
<maxTime>${solr.autoCommit.maxTime:300000}</maxTime> 
<!--true表示每一次硬提交都开启一个新的Searcher--> 
<openSearcher>false</openSearcher> 
</autoCommit>

<autoSoftCommit> 
<!--5秒执行一次软提交--> 
<maxTime>${solr.autoSoftCommit.maxTime:5000}</maxTime>
</autoSoftCommit>

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

$ cd /home/wentian/app/solr/solr7/server/scripts/cloud-scripts
./zkcli.sh -zkhost 192.168.31.200:2181/solr -cmd upconfig -confdir /home/wentian/solr/solrcloud/configsets/book/conf -confname book

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

上传后zookeeper显示如下配置:


image.png

2.2、创建collection

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

http://192.168.31.200:18801/solr/admin/collections?action=CREATE&name=book&numShards=2&replicationFactor=3&maxShardsPerNode=2&collection.configName=book

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

访问http地址结果如下:


image.png

2.3、访问solr

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


image.png

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


image.png

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

[wentian@learn1 book_shard1_replica_n2]$ pwd
/home/wentian/solr/solrcloud/node/solr/book_shard1_replica_n2
[wentian@learn1 book_shard1_replica_n2]$ more core.properties
#Written by CorePropertiesLocator
#Thu Jun 03 21:05:34 GMT+08:00 2021
numShards=2
collection.configName=book
name=book_shard1_replica_n2
replicaType=NRT
shard=shard1
collection=book
coreNodeName=core_node5

3、更新配置文件

3.1、更新并上传

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

$ cd /home/wentian/app/solr/solr7/server/scripts/cloud-scripts
$ ./zkcli.sh -zkhost 192.168.31.200:2181/solr -cmd upconfig -confdir /home/wentian/solr/solrcloud/configsets/book/conf/managed-schema -confname book/managed-schema

此时,虽然配置文件更新到了zookeeper,且自动更新到所有solr节点的core上,但是core仍然使用的是就配置文件。这里就需要用到collection配置文件reload功能。

##3.2、reload配置
访问任意一台solr,http地址如下:
```http
http://192.168.31.202:18801/solr/admin/collections?action=RELOAD&name=book

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


image.png

4、删除collection

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

http://192.168.31.202:18801/solr/admin/collections?action=DELETE&name=book

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

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,222评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,455评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,720评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,568评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,696评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,879评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,028评论 3 409
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,773评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,220评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,550评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,697评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,360评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,002评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,782评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,010评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,433评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,587评论 2 350

推荐阅读更多精彩内容