solr与Mysql数据库数据同步
solr版本:7.3.1
首先要准备好3个jar包
打开solr的dist的目录找到 solr-dataimporthandler-7.3.1.jar和solr-dataimporthandler-extras-7.3.1.jar和MySQL的jar包mysql-connector-java-5.1.45复制到tomcat里的solr的\WEB-INF\lib下
solr:
MySQL
放到 tomcat里的apache-tomcat-8.5.34\webapps\solr\WEB-INF\lib下
在solrHome下创建核心我这里叫user名字随意 但是要和core.properties文件里名字对应
在MySQL中创建一张表
在managed-schema里分词域定义
<!--定义中文分词器 -->
<fieldType name="text_ik" class="solr.TextField">
<analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>
</fieldType>
<!--增加一个域 -->
<field name="title_ik" type="text_ik" indexed="true" stored="true" />
<!--user名字 -->
<field name="s_name_ik" type="text_ik" indexed="true" stored="true" />
<!--user时间 -->
<field name="s_birth" type="text_ik" indexed="true" stored="true" />
<!--user性别 -->
<field name="s_sex_ik" type="text_ik" indexed="true" stored="true" />
<!--目标域-->
<field name="s_mubiao_ik" type="text_ik" indexed="true" stored="true" multiValued="true"/>
<copyField source="s_name_ik" dest="s_mubiao_ik"/>
<copyField source="s_sex_ik" dest="s_mubiao_ik"/>
然后在user里conf里创建data-config.xml
文件
data-config.xml文件内容
column=数据库字段
name=managed-schema定义的域
query=查询语句
<?xml version="1.0" encoding="UTF-8"?>
<dataConfig>
<dataSource type="JdbcDataSource"
driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/数据库名"
user="root"
password="1234" />
<document>
<entity name="student"
query="select s_id,s_name,s_birth,s_sex from student">
<field column="s_id" name="id" />
<field column="s_name" name="s_name_ik" />
<field column="s_birth" name="s_birth" />
<field column="s_sex" name="s_sex_ik" />
</entity>
</document>
</dataConfig>
在solrconfig.xml
里随意一个地方 添加下面的代码
<requestHandler name="/dataimport"
class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">data-config.xml</str>
</lst>
</requestHandler>
配置好以上信息 启动solr
打开solr页面查询:
同步数据:
查询同步的数据: