为什么实体有时需要“url”参数,有时不需要?

时间:2012-05-02 21:54:00

标签: solr dataimporthandler

我正在尝试设置DataImportHandler并在尝试进行完全导入时出现此错误:

  

严重:完全导入失败:java.lang.RuntimeException:java.lang.RuntimeException:org.apache.solr.handler.dataimport.DataImportHandlerException:SolrEntityProcessor:参数'url'是必需的处理文档#1

我在示例中看到了带有solr的data-config.xml,有时Entity有url参数,有时却没有。如果需要,为什么有些例子没有呢?

它在寻找什么网址?

文档实际上并未将“url”显示为SqlEntityProcessor

的必需参数
  

对于SqlEntityProcessor,实体属性为:
  query(必需):用于查询db的sql字符串   deltaQuery:仅用于delta-import
  parentDeltaQuery:仅用于delta-import
  deletedPkQuery:仅用于delta-import
  deltaImportQuery :(仅用于delta-import)。如果不存在,DIH会尝试通过(在识别delta之后)修改“查询”来构造导入查询(这很容易出错)。有一个名称空间$ {dataimporter.delta。}可以在此查询中使用。例如:select * from tbl where id = $ {dataimporter.delta.id} Solr1.4。

1 个答案:

答案 0 :(得分:1)

这取决于您使用的特定EntityProcessor实施。每个EntityProcessor都有自己的实体属性。 SQLEntityProcessor不需要url参数,因为它依赖于dataSource元素来获取连接到数据库所需的信息,而例如SolrEntityProcessor不需要dataSource 1}}元素但依赖于url属性来获取导入数据的Solr实例的url。 还有不同的DataSource实现,如果你查看JdbcDataSource,你会发现它需要url参数本身。