隐藏

solr7.0.1配置dataimport

发布: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"/>

三.数据导入操作