solr加载外部数据目录

1.理解solr的四个核心文件

1.1core.properties配置

有以下参数

name:      core的名称,必填参数

config:    用于指定solrconfig.xml配置文件的文件名,默认值是solrconfig.xml

dataDir:   指定用于存放lucene索引和log日志文件的目录路径,该路径是相对于core根目录(在单core模式下,就直接是相对于solr_home了),默认值是当前core目录下的data

ulogDir:用来配置指定事务日志文件路径的,默认值是当前core目录下的data目录下的tlog

schema: 即用来配置你的schema.xml配置文件的文件名的,schema.xml配置文件必须存放在当前core目录下的conf目录下

shard:用来设置当前core的分片id,可选参数

collection:用来配置当前core属于哪个solrClound collection,这里配置的是该solrClound collection的name值,可选参数

loadOnStartup:表示是否在solr启动部署的时候就加载core并为当前core创建一个新的IndexSearcher实例

transient:用来设置当Solr的transient-cacheSize阀值达到限制值的时候,是否自动卸载当前core.

在这里插入图片描述

1.2 solrconfig.xml(每个 core)
a、请求处理程序,处理对 Solr 的请求,例如向索引添加文档的请求或查询文档的请求。
b、监听器,“监听”特定查询相关事件的过程;监听器可用于触发特殊代码的执行,例如调用一些常见查询来预热缓存
c、Request Dispatcher,用于管理 HTTP 通信
d、Admin Web 界面
e、复制和副本相关的参数

dataDir 和 directoryFactory

dataDir 用于指定索引数据的位置,默认情况下,== Solr 将其索引数据存储在 ${core_home}/data 目录==中
如果需要指定其他目录用于存储索引,可以在 core.properties 中配置 dataDir,或在 solrconfig.xml中配置 参数。可以使用绝对路径或相对于 Solr 核心的 instanceDir 路径名来指定另一个目录。

1.3 schema.xml/managed-schema(每个 core)

该配置文件用于定义索引库的数据类型,同时指明某个类型的字段是不是要进行索引
该文件包含四类信息:uniqueKey、fieldType、field、dynamicField、copyField。

1.4 solr.xml(全局)为整个 Solr 服务器实例指定配置选项,用于设置一些全局配置
	a、<solrcloud> 元素定义了与 SolrCloud 相关的参数:
	b、<shardHandlerFactory> 元素用于定义分片处理程序,可以在这里定义自定义的分片处理程序
1.5 solrcloud的一些命令
建立collections,分成两个分片,每个分片有2个备份。
bin/solr create –c collection01 –d _default –shards 2 –replicationFactor 2 –p 8983
删除collections
bin/solr delete –c collectonname –p port

# 设置solr配置文件路径
sh /data/solr-8.2.0/server/scripts/cloud-scripts/zkcli.sh -zkhost 192.168.244.44:2181,192.168.244.43:2181,192.168.244.42:2181 --cmd upconfig -solrhome /data/solr-8.2.0/server/solr
# 上传核心配置文件目录
sh /data/solr-8.2.0/server/scripts/cloud-scripts/zkcli.sh -zkhost 192.168.244.44:2181,192.168.244.43:2181,192.168.244.42:2181 --cmd upconfig -confdir /data/solr-8.2.0/server/solr/orders -confname orders

2.示例1(集群加载外部数据)

2.1 目前没有collections,只有一个默认配置文件,但是每个核心里面是有数据的

(每次关于zookeeper,关注两个数据目录 collections 和 configs)
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

可以看到由于缺少配置文件,集群中不能加载mycollection数据。

2.2 解决步骤

上传配置文件 以及新建core

  • 第一步:上传配置文件,名字为myconfig
docker exec -it solr1 
/opt/solr-9.4.0/server/scripts/cloud-scripts/zkcli.sh 
-zkhost zookeeper1:2181,zookeeper2:2181,zookeeper3:2181 
-cmd upconfig 
-confdir /opt/solr-9.4.0/server/solr/configsets/sample_techproducts_configs/conf 
-confname myconfig
#里面主要是schema.xml 和 solrconfig文件比较重要
  • 第二步:建立核心
/opt/solr/bin/solr create_collection -c mycollection -shards 2 -replicationFactor 2
  • 第三步:加载数据
2.3 结果

由下图可知,成功加载mycollection数据
在这里插入图片描述在这里插入图片描述

3.示例2

3.1 目前只有一个核心,名称是mycollection ,两个配置文件 default 和 myconfig

在这里插入图片描述

3.2 新建一个核心collect1,往里面加入3条数据,如图所示

在这里插入图片描述在这里插入图片描述
目前集群有两个核心
在这里插入图片描述

3.3 新建一个collect1new的核心

在这里插入图片描述

  • 查看数据目录
    在这里插入图片描述
3.4 制collect1 数据复制到 collect1new
 cp -r data/*  /var/solr/data/collect1new_shard1_replica_n1/data
3.5 collect1new 查询结果如下

与collect1数据一致
在这里插入图片描述

4.示例3 solrCloud切换数据目录

参考链接: solrCloud切换数据目录

1、设置路径并拷贝数据
找到solr的solr.in.sh配置 文件,一般再安装目录的bin目录下,我的是/opt/solr/bin,修改SOLR_HOME为新数据目录

这里注意一个点拷贝原来数据到新目录时一定要全部拷贝,包括solr.xml 文件 我报错的原因就是没有拷贝solr.xml,其实注释已经说的很清楚了,当时没注意到

# Path to a directory for Solr to store cores and their data. By default, Solr will use server/solr    Solr存储内核及其数据的目录路径。 默认情况下,Solr将使用server/ Solr
# If solr.xml is not stored in ZooKeeper, this directory needs to contain solr.xml  如果solr.xml不在ZooKeeper中,则需要在该目录下存放solr.xml 

#SOLR_HOME=/opt/solr/data 原来的目录
SOLR_HOME=/data/solr/data  新挂载的目录

在这里插入图片描述

2、重启

/etc/init.d/solr restart
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值