在集合之间移动项目

时间:2016-02-23 12:56:36

标签: import export move items dspace

我需要在两个集合之间移动大量的项目。我试图直接在数据库中更改表“item”和“collection2item”,列分别为“owning_collection”和“item_id”。然后我重新启动了tomcat,清理了cocoon缓存,重建了索引,它仍然没有工作。

流程元数据导出/元数据导入比上面的项目大规模移动更安全或更容易吗?

我还能做什么?

2 个答案:

答案 0 :(得分:2)

元数据导入过程非常可靠。它还提供了一个预览选项,允许您在应用之前查看更改。更新项目后,将运行正确的重新索引过程。

您只需提供要编辑的项ID和数据字段。

如果您希望手动或从SQL查询构建CSV文件,那么也可以。 CSV顶部的列名称将决定要更新的字段。

https://wiki.duraspace.org/display/DSDOC5x/Batch+Metadata+Editing#BatchMetadataEditing-CSVFormat

答案 1 :(得分:2)

如果你使用-bf标志运行reindex,你的过程应该没问题(只有-f也可能就够了)。

如果没有-f标志,reindex(链接到DSpace 5.x的代码)将检查last_modified值(在item表中)和仅重新索引自上次重新索引以来该列中的值已更改的项目。这也意味着,如果您还更新了-f时间戳,则无last_modified的重新索引应该有效。

仍然无效?

如果重新索引仍未发生,则必须出现其他问题。检查你的dspace.log - 是否有任何条目看起来像"将项目xyz写入索引"?如果没有,那么这些项目不会被重新编制索引。在您执行reindex时,dspace.log中是否有任何错误消息? solr日志文件中的任何错误消息?

此外,请确保始终以运行tomcat的同一用户身份运行reindex(以及所有其他dspace命令),以避免权限问题。如果您曾以不同的用户身份运行命令,请更改solr数据目录(可能是[dspace]/solr/search/data)的权限,以便tomcat用户可以在其中创建/写入/删除文件。

总体建议

在大多数情况下,我自己使用批量元数据编辑来在集合之间移动项目,它可以避免所有这些问题并自动触发受影响项目的重新索引。