发布:2019/11/12 8:54:37作者:管理员 来源:本站 浏览次数:1104
上篇文章只是讲解了如何安装和配置solr,只是可以看日志和新增core,并不能看到任何数据。本文就讲解如何将mysql的数据导入solr。以及数据源的相关配置。
一.准备工作
1. 在D:\solr-7.0.1\dist文件夹里,将 solr-dataimporthandler-extras-4.7.0.jar和solr-dataimporthandler-4.7.0.jar复制到tomcat下的\webapps\solr\WEB-INF\lib中。
2. mysql驱动(mysql-connector-5.1.16-bin.jar,下载地址:https://pan.baidu.com/s/1njVczCZS3jpyw2GZhCN3gw),下载后复制到tomcat下的\webapps\solr\WEB-INF\lib中。
二.修改solr配置(路径:D:\work\solr_root\solr_home\crm_follow\conf)
1. 修改solrconfig.xml文件,添加如下这段配置,置相关数据源的。
<requestHandler name="/dataimport" class="solr.DataImportHandler">
<lst name="defaults">
<str name="config">data-config.xml</str>
</lst>
</requestHandler>
2. 然后是新建data-config.xml文件,添加如下配置:
driver:mysql
url:mysql地址
user:用户名
password:密码
query:查询语句(在数据导入的时候就会用到,将mysql查询的数据导入solr)
<dataConfig>
<!-- 这是mysql的配置,学会jdbc的都应该看得懂 -->
<dataSource type="JdbcDataSource"
driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:8080/manage"
user="test"
password="test"/>
<document>
<!-- name属性,就代表着一个文档,可以随便命名 -->
<!-- query是一条sql,代表在数据库查找出来的数据 -->
<entity name="crm_follow" query="select * from crm_follow">
<!-- 每一个field映射着数据库中列与文档中的域,column是数据库列,name是solr的域(必须是在managed-schema文件中配置过的域才行) -->
<field column="topic_id" name="topicId"/>
<field column="user_id" name="userId"/>
<field column="contacts_id" name="ContactsId"/>
<field column="type" name="type"/>
<field column="status" name="status"/>
<field column="next_flow_time" name="nextFlowTime"/>
<field column="ecDate" name="ecDate"/>
<field column="is_assist" name="isAssist"/>
<field column="content" name="content"/>
<field column="remarks" name="remarks"/>
<field column="create_time" name="createTime"/>
</entity>
</document>
</dataConfig>
3. 最后的一个文件配置是修改managed-schema文件,添加在data-config中定义的字段,如果已经存在如id、name,则可不用重新添加。
索引
<field name="type" type="string" indexed="true" stored="true"/>
<field name="contactsId" type="string" indexed="true" stored="true"/>
<field name="userId" type="string" indexed="true" stored="true"/>
<field name="status" type="string" indexed="true" stored="true"/>
<field name="nextFlowTime" type="string" indexed="true" stored="true"/>
<field name="ecDate" type="string" indexed="true" stored="true"/>
<field name="isAssist" type="string" indexed="true" stored="true"/>
<field name="remarks" type="string" indexed="true" stored="true"/>
<field name="content" type="string" indexed="true" stored="true"/>
<field name="createTime" type="string" indexed="true" stored="true"/>
复制索引
<copyField source="name" dest="suggestion" />
<copyField source="adress" dest="text"/>
<copyField source="phone" dest="text"/>
<copyField source="description" dest="text"/>
<copyField source="updateTime" dest="text"/>
<copyField source="isDeleted" dest="text"/>
<copyField source="type" dest="text"/>
<copyField source="contactsId" dest="text"/>
<copyField source="userId" dest="text"/>
<copyField source="createTime" dest="text"/>
三.数据导入操作