solr DIH delta导入中的pk是什么?我试图在solr中对多个字段进行delta索引?
答案 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期间被临时存储和使用,并且不需要永久存储在索引中。