初始全量导入数据库数据
假设存在表 solr表示 其中 有以下数据:
进入solr所在服务器 搜索 dataimport相关jar包
solr@localhost:/opt/solr$ find / -name *import*.jar
/opt/solr/dist/solr-dataimporthandler-5.5.5.jar
/opt/solr/dist/solr-dataimporthandler-extras-5.5.5.jar
将这两个jar包拷贝到 solr启动应用 webapp/lib目录下
cp /opt/solr/dist/solr-dataimporthandler-5.5.5.jar /opt/solr/server/solr-webapp/webapp/WEB-INF/lib
cp /opt/solr/dist/solr-dataimporthandler-extras-5.5.5.jar /opt/solr/server/solr-webapp/webapp/WEB-INF/lib
同时将mysql的驱动包jar包 丢到该目录下
docker cp ./mysql-connector-java-5.1.24.jar my_solr:/opt/solr/server/solr-webapp/webapp/WEB-INF/lib
重启一下容器然后新建配置连接的数据库以及查询的sql语句data-c.xml文件
内容:(注意<?xml 前面不能含有空格)
<?xml version="1.0" encoding="UTF-8"?>
<dataConfig>
<dataSource name="source1" type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://192.168.0.251:3306/solr_ik" user="root" password="ps123456" batchSize="-1" />
<document>
<entity name="solr_ik" pk="newid" dataSource="source1"
query="select * from solr_ik" >
<field column="newid" name="id"/>
<field column="newtitle" name="newtitle_ik"/>
</entity>
</document>
</dataConfig>
cp进入mycore/conf目录 docker cp ./data-c.xml my_solr:/opt/solr/server/solr/mycore/conf
修改solrconfig.xml 指定data-c.xml文件:
把文件cp出来修改docker cp my_solr:/opt/solr/server/solr/mycore/conf/solrconfig.xml ./
添加该代码对应之前添加的配置的data-c.xml文件
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">data-c.xml</str>
</lst>
</requestHandler>
然后cp回去:docker cp ./solrconfig.xml my_solr:/opt/solr/server/solr/mycore/conf
重启容器 之后进入Solr Admin网页打开core里面的Dataimport其中要注意Clean打钩的话是会清除之前所有储存的索引
Commit表示自动提交 -------Raw Status-Output状态报告
打开Configuration可以查看data-c.xml文件是否生效 注意(箭头指向处有空格所以没生效,代码还是黑色的也没有生效)
如这张图所示才是生效效果(搞了我半小时)编辑完成后重新cp一下
玩蹦了 (┬_┬) 有没有大佬指点一下 数据库用IP地址连接不上,已经把权限改成%了.上图为证,用localhost可以连接,输入ip就报错
找到问题
原因是防火墙处于一个半开半闭状态,导致外网连接本机ip地址访问拒绝,还有我的系统全部崩盘需要重装系统~~~~
---------------------------------------------------------------------------------万恶的分割线--------------------------------------------------------------------------
以下是用虚拟机和主机组成的内联网连上主机ip的(需要在虚拟机输入命令确认一下连接(telnet 192.168.146.1 3306
))
访问成功进入查询也添加成功了