Solr-data-config.xml配置

data-config.xml位于core目录/conf/目录下,可用于配置从指定数据中查询数据并导入索引。
配置如下:


    
    
        
            
             
             
            
            
            
            
            
        
    
  

dataSource节点配置:##

  • name: dataSource的名称,配置文件可以有多个datasource,使用name区分。
  • type:数据源类型,如JDBC
  • driver:数据库驱动包,去提前放到lib目录下
  • url:数据库连接url
  • user:数据库用户名
  • password:数据库密码
  • 字段配置:
    • column:数据库查询列名称
    • name:Schema.xml中的字段

doucment节点配置

document节点用来配置如何从数据库导入数据构建document对象,主要有一个或多个即实体组成。有如下属性:

  • name:实体名称
  • dataSource:dataSource名称
  • query:获取全部数据的SQL
  • deltaImportQuery:获取增量数据时使用的SQL
  • deltaQuery:获取pk的SQL
  • parentDeltaQuery:获取父Entity的pk的SQL

在Solr的控制台上可执行:full-import全导入和delta-import增量导入。

Full Import工作原理:
执行本Entity的Query,获取所有数据;
针对每个行数据Row,获取pk,组装子Entity的Query;
执行子Entity的Query,获取子Entity的数据。

Delta Import工作原理:
查找子Entity,直到没有为止;
执行Entity的deltaQuery,获取变化数据的pk;
合并子Entity parentDeltaQuery得到的pk;
针对每一个pk Row,组装父Entity的parentDeltaQuery;
执行parentDeltaQuery,获取父Entity的pk;
执行deltaImportQuery,获取自身的数据;
如果没有deltaImportQuery,就组装Query

限制:
子Entity的query必须引用父Entity的pk
子Entity的parentDeltaQuery必须引用自己的pk
子Entity的parentDeltaQuery必须返回父Entity的pk
deltaImportQuery引用的必须是自己的pk

solr自带的实例配置:


    
    
        
            

            
                
            
            
            
                
                    
                
            
        
        

注意查询条件的写法:${..},如在本例中:

${dataimporter.last_index_time} 索引上次导入时间

${item.ID} 实体item查询结果中的ID

你可能感兴趣的:(Solr-data-config.xml配置)