Solr-6.5.1从mysql数据库全量导入数据

第一步:修改solrconfig.xml
solrconfig.xml的目录如下:
这里写图片描述
注意:其中solrhome为自定义的名称,db为自定义的core名称
找到如下代码(717行左右),若和下面代码一样,则不需要修改(一般都不需要修改),若不一样,则修改为下面的代码:

  <requestHandler name="/dataimport" class="solr.DataImportHandler">
    <lst name="defaults">
      <str name="config">db-data-config.xml</str>
    </lst>
  </requestHandler>

注意:需要确认文件中不存在其他的dataimport,如果存在直接替换即可

第二步:修改data-config.xml文件
这里写图片描述
在同级目录下创建data-config.xml文件(若存在相关文件,则直接编辑),然后配置数据库相关属性

<?xml version="1.0" encoding="UTF-8"?> 
<dataConfig>
    <!-- 数据源配置 -->
    <dataSource name="source1" type="JdbcDataSource"
              driver="com.mysql.jdbc.Driver"
              url="jdbc:mysql://127.0.0.1:3306/ahutshop"
              user="root"
              password="root" />

    <document>
        <!-- 
            name:数据库中表的名称
            dataSource:数据源
            pk:唯一标识(不是表的主键)
            query:查询语句
            column:表的字段名称
            name:属性名称
         -->
        <entity name="goods_type" dataSource="source1" pk="type_id"
            query="SELECT g.type_id,g.type_name,g.create_time,g.update_time FROM goods_type g">
            <field column='type_id' name='typeId' />
            <field column='type_name' name='typeName' />
            <field column='create_time' name='createTime' dateTimeFormat='yyyy-MM-dd HH:mm:ss' />
            <field column='update_time' name='updateTime' dateTimeFormat='yyyy-MM-dd HH:mm:ss' />
        </entity>
    </document>
</dataConfig>

第三步:配置managed-schema.xml
这里写图片描述

<?xml version="1.0" encoding="UTF-8" ?>

<schema name="example-DIH-db" version="1.6">

<!-- 保留字段,不能删除,否则报错 -->
    <field name="_version_" type="long" indexed="true" stored="true"/>
    <!-- 保留字段,整合字段,包含其他可搜索的字段 (通过copyField实现) -->
   <field name="text" type="string" indexed="true" 
           stored="false" multiValued="true"/>
    <!-- fields各个属性说明:
     name: 必须属性 - 字段名
     type: 必须属性 - <types>中定义的字段类型 
     indexed: 如果字段需要被索引(用于搜索或排序),属性值设置为true
     stored: 如果字段内容需要被返回,值设置为true
     docValues: 如果这个字段应该有文档值(doc values),设置为true。文档值在门
           面搜索,分组,排序和函数查询中会非常有用。虽然不是必须的,而且会导致生成
           索引变大变慢,但这样设置会使索引加载更快,更加NRT友好,更高的内存使用效率。
           然而也有一些使用限制:目前仅支持StrField, UUIDField和所有 Trie*Fields, 
           并且依赖字段类型, 可能要求字段为单值(single-valued)的,必须的或者有默认值。
     multiValued: 如果这个字段在每个文档中可能包含多个值,设置为true
     termVectors: [false] 设置为true后,会保存所给字段的相关向量(vector)
           当使用MoreLikeThis时, 用于相似度判断的字段需要设置为stored来达到最佳性能.
     termPositions: 保存和向量相关的位置信息,会增加存储开销 
     termOffsets: 保存 offset 和向量相关的信息,会增加存储开销
     required: 字段必须有值,否则会抛异常
     default: 在增加文档时,可以根据需要为字段设置一个默认值,防止为空
   -->
   <!-- 字段名由字母数字下划线组成,且不能以数字开头。两端为下划线的字段为保留字段,
      如(_version_)。
    -->
    <field name="typeId" type="string" indexed="true" stored="true" required="true" multiValued="false" /> 

    <field name="typeName" type="text_smartcn" indexed="true" stored="true" multiValued="false"/>

    <field name="createTime" type="date" indexed="false" stored="true"/>

    <field name="updateTime" type="date" indexed="false" stored="true"/>

    <uniqueKey>typeId</uniqueKey>

    <!-- 字段类型定义 -->
    <types>
        <fieldType name="long" class="solr.TrieLongField" precisionStep="0" 
        positionIncrementGap="0"/>

        <fieldType name="string" class="solr.StrField" sortMissingLast="true" />

        <fieldType name="date" class="solr.TrieDateField" docValues="true" precisionStep="0" positionIncrementGap="0"/>

        <!-- 配置中文分词器 -->
        <fieldType name="text_smartcn" class="solr.TextField" positionIncrementGap="100">
            <analyzer type="index">
                <tokenizer class="org.apache.lucene.analysis.cn.smart.HMMChineseTokenizerFactory"/>
            </analyzer>
            <analyzer type="query">
                <tokenizer class="org.apache.lucene.analysis.cn.smart.HMMChineseTokenizerFactory"/>
            </analyzer>
        </fieldType>
    </types>

</schema>

第四步:拷贝jar
拷贝solr-6.5.1\dist路径下的solr-dataimporthandler-6.5.1.jar,solr-dataimporthandler-extras-6.5.1.jar 到E:\Java\tomcat\apache-tomcat-9.0.26-windows-x64\webapps\solr\WEB-INF\lib目录下

同时拷贝mysql-connector-java-5.1.40.jar链接jar到该目录下

不需要修改任何配置文件即可,继续下面的步骤
第五步:solrconfig.xml
继续打开solrconfig.xml 找到lib标签,查看是否和下面代码一致(一般在75行左右,一般不需要修改)

  <lib dir="${solr.install.dir:../../../..}/dist/" regex="solr-dataimporthandler-.*\.jar" />

  <lib dir="${solr.install.dir:../../../..}/contrib/extraction/lib" regex=".*\.jar" />
  <lib dir="${solr.install.dir:../../../..}/dist/" regex="solr-cell-\d.*\.jar" />

  <lib dir="${solr.install.dir:../../../..}/contrib/langid/lib/" regex=".*\.jar" />
  <lib dir="${solr.install.dir:../../../..}/dist/" regex="solr-langid-\d.*\.jar" />

  <lib dir="${solr.install.dir:../../../..}/contrib/velocity/lib" regex=".*\.jar" />
  <lib dir="${solr.install.dir:../../../..}/dist/" regex="solr-velocity-\d.*\.jar" />

第六步
重启tomcat,刷新solr页面即可看到下面界面
这里写图片描述
full-import 全量导入,delta-import-增量导入

点击Execute就可以导入了,点击左侧Query可查询导入的数据
这里写图片描述
完成

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值