zoukankan      html  css  js  c++  java
  • solr-DIH:dataimport增量全量创建索引

    索引创建完毕,就要考虑怎么定时的去重建, 除了写solrj,可以定时调用下面两条url进行增量或者全量创建索引 
      全量:http://ip:port/webapp_name/core_name/dataimport?command=full-import 
      增量:http://ip:port/webapp_name/core_name/dataimport?command=delta-import 
      全量索引直接调用就可以,因为是完全删除重建 
      如果是增量索引,就稍微麻烦一些,首先你必须在表中定义两个字段,一个是删除标志:isdeleted,另一个则是记录创建时间:create_date,名称随意,这两个字段主要通知solr对已有索引的删除,和需要导入的新纪录的时间(solr建立索引会生成dataimport.properties,里面last_index_time=2014-03-07 14:48:27记录了上次建立索引的时间,需要你指定create_date在这个时间之后的记录进行增量) 
      接下来需要你在dataimport.xml增加如下配置: 

    <entity pk="ID"  name="test" 
        query="select  *  from test WHERE isdelete=0 "   
        deltaQuery="select ID  from test where
                    create_date>'${dataimporter.last_index_time}'"                 
        deletedPkQuery="select ID from myinfo where isdelete=1"            
        deltaImportQuery="select * from myinfo where     
                          ID='${dataimporter.delta.ID}'">

          
      含义如下:  
           deltaQuery 
           查询出所有经过修改的记录的ID  
           可能是修改操作,添加操作,删除操作产生的  
           (此查询只对增量导入起作用,而且只能返回ID值)   
           deletedPkQuery 
           此操作值查询那些数据库里伪删除的数据的ID(即isdelete标识为1的数据)  
           solr通过它来删除索引里面对应的数据  
           (此查询只对增量导入起作用,而且只能返回ID值)  
          
            deltaImportQuery 
            次查询是获取以上两步的ID,然后把其全部数据获取,根据获取的数据  
            对索引库进行更新操作,可能是删除,添加,修改  
            (此查询只对增量导入起作用,可以返回多个字段的值,一般情况下,都是返回所有字段的列)             

  • 相关阅读:
    XAML语言
    Sqlite 数据库插入标示字段 获取新Id 及利用索引优化查询
    提高C#编程水平的50个要点 ——学生的迷茫
    734条高频词组笔记
    C#读取ini配置文件
    MD5加密
    SQL Server 2000 及 2005 端口修改
    Java控制台程序20例
    Tomcat 6.0+ SQL Server 2005连接池的配
    阿里巴巴离职DBA 35岁总结的职业生涯
  • 原文地址:https://www.cnblogs.com/lvfeilong/p/1232fsfdsf.html
Copyright © 2011-2022 走看看