来自mysql的多个字段索引的DIH delta导入

时间:2013-01-18 15:30:40

标签: solr dih

solr DIH delta导入中的pk是什么?我试图在solr中对多个字段进行delta索引?

3 个答案:

答案 0 :(得分:0)

我相信你在schema.xml文件中指定的任何字段都是id字段。

答案 1 :(得分:0)

它是Solr字段的名称,用作该记录的唯一键。您定义源到该Solr列的映射,然后 - 在映射之后 - Solr根据您指定的pk字段检查其存在和值。

它与primaryKey不同,因为您可能正在生成primaryKey,或者它可能不适合某种方式。但它可能是一样的。我认为最清晰的Wiki解释可能在the example for HttpDataSource

我相信,当您将内部源条目展平为一个Solr条目时,您也可以定义复合pk。

答案 2 :(得分:0)

我认为问题出在您对子实体的delta查询中。你给了,

deltaQuery="select id from cc_gadget_lang where '${cc_gadget.last_modified_date}' > '${dataimporter.last_index_time}'"

我认为上述查询中的where条件总是验证为TRUE,并且没有具体目的。

我建议的解决方案是在数据库的“cc_gadget_lang”表中使用单独的“last_modified_date”字段,并在子实体的delta查询中使用该字段。

我还认为不需要在您的架构文件中拥有子实体的“pk”,因为它们在delta-imports期间被临时存储和使用,并且不需要永久存储在索引中。