CentOS7上导出solr数据到json文件中 及 solr如何添加、删除、查询数据

一 Centos7 上导出solr数据到json文件中

开发需要,solr的数据需要导出来,放到另一套架构中,那么怎么将solr数据导出,放入json文件中?

 

导出solr数据,我们需要借助github上的一个maven项目。

1 安装工具:

[root@solr1 local]# git clone https://github.com/freedev/solr-import-export-json.git

如下图:

或者

直接将远程服务器的solr-import-export-json 直接拷贝过来也行

[root@solr1 local]# scp -r solr-import-export-json/ root@192.168.0.183:/usr/local   (在远程服务器上进行的操作)
root@192.168.0.183's password: 

2 进入solr-import-export-json 目录

[root@solr1 local]# cd solr-import-export-json/
[root@solr1 solr-import-export-json]# ls
contributors.txt  gpl.txt  pom.xml  README.md  run.sh  src

需要根据自己的项目情况,修改一下pom.xml 文件中的配置。
因为我项目搭建的solrcloud是7.3.1版本,所以,pom.xml文件中,定义的solr插件版本改成了 7.3.1

3 安装maven

[root@solr1 local]# yum -y install maven

注意:

如果不安装maven,当执行如下命令:

[root@solr1 solr-import-export-json]# ./run.sh -s http://localhost:8983/solr/traces -a export -o ~/abc.json

有可能会报如图所示错误:

报此错误的原因是 linux服务器上没有安装 maven

4 在linux系统上首次使用maven,需要执行一下如下命令,之后就不用再执行 mvn clean package 命令了

[root@solr1 solr-import-export-json]# mvn clean package

需要在 solr-import-export-json 目录下执行 mvn clean package 命令(否则会报找不到pom.xml文件)。执行命令后会下载 pom.xml 中指定的插件,比如

5 导出数据---需要在 solr-import-export-json 目录下执行

./run.sh -s http://localhost:8983/solr/<repository> -a export -o /tmp/xxx.json

比如,将solr中 traces集合(可以是core也可以是collection) 下的数据导入到 ~(~默认代指root)目录下traces.json文件中
[root@solr1 solr-import-export-json]# ./run.sh -s http://localhost:8983/solr/traces -a export -o ~/traces.json

6 执行完第5步,在 ~ 目录下可以看到生成的 traces.json文件。

生成的json文件里面的数据内容格式为:

还不符合标准的json格式,自己在对象之间加上,在最外层加上[ ] 就符合标准的 json规范了。

二 向solr中导入数据

注意:
1 使用solr web客户端 向solr中导入json数据时,导入的是对象,多个对象之间要加“,”且外面不能加[ ]

2 使用solr命令(通过post.jar)向solr中添加数据时,数据所在的json文件必须是符合json格式真正的json文件
post.jar 位于  solr-7.3.1/example/exampledocs/ 下。 用post.jar向solr中导入数据举例:

java -Dc=traces -Dtype=application/json -jar post.jar ~/solrdata_json/traces.json

三 solr如何删除数据

1 删除所有索引

2 删除id为1的索引,使用xml有两种写法:

写法一:

<delete><id>1</id></delete>
<commit/>

写法二:

<delete><query>id:1</query></delete>
<commit/>

 



3 如果id不是int类型比如是string类型

可以这样删除:

 

四 solr查询数据

1 使用curl命令在products中查询 字段 p_count=1 的索引数据

[root@gx-solr1 logs]# curl "http://gx-solr2:8983/solr/products/select?q=p_count:1"

2 查看products的shema文件managed-schema (可参照“按浏览器F12>network,找到类似请求”)

[root@gx-solr1 ~]# curl "http://gx-solr2:8983/solr/products/admin/file?_=1543998686038&contentType=text/plain;charset=utf-8&file=managed-schema&wt=json"

3 查询 solr某个collection下的schema文件内容,执行命令 curl 'xxx' ,将其返回结果保存到 log.log 中

[root@gx-solr1 ~]# curl 'http://192.168.0.110:8983/solr/scan_detail/admin/file?_=1544066402749&contentType=text/plain;charset=utf-8&file=managed-schema&wt=json' > log.log

4 通过solr web界面按 id 降序 查询数据

降序  desc   (descending)
升序  asc   (ascending)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wudinaniya

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值