0

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

4

3 回答 3

0

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

于 2013-01-18T16:16:57.583 回答
0

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

它与 primaryKey 不同,因为您可能正在生成 primaryKey 或者它可能不适合。但它可能是一样的。我认为最清晰的 Wiki 解释可能在HttpDataSource 的示例中

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

于 2013-01-18T16:17:56.657 回答
0

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

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”字段,并在子实体的增量查询中使用它。

我也相信没有必要在您的架构文件中包含子实体的“pk”,因为它们在增量导入期间被临时存储和使用,并且不需要永久存储在索引中。

于 2013-01-21T04:07:23.990 回答