zoukankan      html  css  js  c++  java
  • (七) solr数据导入:通过JDBC从数据库导入数据

    这节展示如何通过JDBC从mysql数据库中将数据导入进solr中

    假设数据库(blog)中有如下两个表:article,category

    article:

    id,title,catid

    category:

    id,catname

    接着需要做一下几个配置:

    在 schema.xml的域信息定义如下:

     <field name="id"     type="string"   indexed="true"  stored="true"  required="true"/>
     <field name="title" type="text" indexed="true" stored="true"/>
     <field name="catname" type="string" stored="true"/>

    solrconfig.xml

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

    db-data-config.xml 的配置如下:

    <dataConfig>
        <dataSource driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/blog" user="root" password="admin"/>
        <document>
            <entity name="article" query="select id,title,catid from article">
                <field column="id" name="id" />
                <field column="title" name="title" />
                <field column="title" name="suggest"/>
                <entity name="category" query="select catname from category where id=${article.catid}">
                    <field column="catname" name="catname"/>
                </entity>
            </entity>
        </document>
    </dataConfig>

    配置完成之后,重启solr服务,然后执行以下命令进行数据导入

    http://localhost:8983/solr/import?command=full-import

    /import: 这个命令用于显示当前的状态

    /import?command=full-import :使用该参数,表示进行完全导入,默认情况下,在开始导入的时候,会将上次导入的数据进先进行删除,然后再导入,通过另外一个参数,可以改变这种默认行为,clean=false

    /dataimport?command=delta-import:使用该参数,表示进行增量导入

    /dataimport?command=reload-config: 该命令表示强制对配置进行重新加载

    /dataimport?command=abort :该命令表示停止当前正在进行的索引

    下面就一些参数稍作解释:

     <field column="title" name="title" />  此处是将从mysql数据库中获取的字段名“title” 映射到schema.xml中的title域中(其实此处),其余字段以此类推

  • 相关阅读:
    CSS相关(2)
    CSS相关(1)
    Git(待补充)
    Jenkins学习(1)-什么是Jenkins
    Yaml(待补充)
    Tomcat(待补充)
    Json(待补充)
    Java语言学习(8)-Java中的异常处理
    Java语言学习(7)-Java中IO
    Java语言学习(6)-Java中封装类(正则表达式操作类)
  • 原文地址:https://www.cnblogs.com/xiazh/p/2546860.html
Copyright © 2011-2022 走看看