zoukankan      html  css  js  c++  java
  • Solr 数据导入 <一>DIH简单使用

    使用DataImportHandler进行简单数据导入还是比较有效的,特别是DIH中针对简单的数据库表,可以把完全导入和增量导入合并成一个语句,非常方便。我的使用方式如下所示

    1。配置schema

    Xml代码  收藏代码
    1. <requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">  
    2.     <lst name="defaults">  
    3.       <str name="config">/home/tomcat/bin/solr/conf/data-config.xml</str>  
    4.     </lst>  
    5.   </requestHandler>  
     

    2.添加data-config文件

    data-config.xml

    Xml代码  收藏代码
    1. <dataConfig>  
    2.   <dataSource type="JdbcDataSource"   
    3.               driver="com.mysql.jdbc.Driver"  
    4.               url="jdbc:mysql://127.0.0.1/db"   
    5.               user="root"   
    6.               password="pass"  
    7.               batchSize="-1"/>  
    8.   <document>  
    9.     <entity name="id" pk="id"    
    10.             query="select id,username,text,cat  from hot where '${dataimporter.request.clean}' != 'false' OR timestamp > '${dataimporter.last_index_time}'">  
    11.          <field column="id" name="id"/>  
    12.          <field column="text" name="text"/>  
    13.          <field column="username" name="username_s"/>  
    14.          <field column="cat" name="cat_t"/>  
    15.     </entity>  
    16.   </document>  
    17. </dataConfig>  

    3.让DIH周期性的运行

    修改dataimport.properties文件,这个是自动生成的,同在solr/conf下,添加参数

    interval 间隔时间 单位 分钟

    syncEnabled=1 打开周期运行

    params 其实就是具体调用的url,周期运行就是周期性的访问一个url

    Java代码  收藏代码
    1. #Wed Dec 28 09:29:42 UTC 2011  
    2. port=8983  
    3. interval=5  
    4. last_index_time=2011-12-28 09:29:26  
    5. syncEnabled=1  
    6. webapp=solr  
    7. id.last_index_time=2011-12-28 09:29:26  
    8. server=127.0.0.1  
    9. params=/select?qt=/dataimport&command=full-import&clean=false&commit=true&optimize=false  
     

    到此还并不能周期运行,在solr的wiki中有一段实现这个功能的代码,但并没有加入到solr的发行包中,于是我们需要重新编译这段代码,打包放到webapp/solr/WEB-INF/lib中才行

    Xml代码  收藏代码
    1. <web-app>  
    2.    <listener>  
    3.        <listener-class>org.apache.solr.handler.dataimport.scheduler.ApplicationListener</listener-class>  
    4.   </listener>  
    5.   ...  
    6. </web-app>


    apache-solr-dataimporthandler-scheduler.jar下载见原文链接:http://martin3000.iteye.com/blog/1328833

  • 相关阅读:
    HDU
    HDU
    HDU
    HDU
    HDU
    P6146 [USACO20FEB]Help Yourself G 组合数学 DP
    CodeForces
    POJ
    【网络学习】集线器,交换机,路由器的作用
    【Python学习】深拷贝和浅拷贝
  • 原文地址:https://www.cnblogs.com/kuyuyingzi/p/4266329.html
Copyright © 2011-2022 走看看