在集合之间移动项目
Move items between collections
我需要在两个集合之间移动大量项目。我试图直接在数据库中更改表 "item" 和 "collection2item"、列 "owning_collection" 和 "item_id"。然后我重启了tomcat,清理了cocoon缓存,重建了索引,还是不行。
批量移动物品的过程metadata-export/metadata-import是否比上述过程更安全或更容易?
我还能做什么?
元数据导入过程非常可靠。它还提供了一个预览选项,允许您在应用更改之前查看更改。项目更新后,正确的重新索引过程将 运行.
您只需提供项目 ID 和您要编辑的数据字段。
如果您更喜欢手动或通过 SQL 查询构建 CSV 文件,那也可以。 CSV 顶部的列名称将决定要更新的字段。
https://wiki.duraspace.org/display/DSDOC5x/Batch+Metadata+Editing#BatchMetadataEditing-CSVFormat
如果您 运行 使用 -bf
标志重建索引(-f
可能就足够了),您的过程应该没问题。
没有 -f
标志,reindex(link 进入 DSpace 5.x 的代码)将检查 last_modified
值(在item
table) 并且仅重新索引自上次重新索引以来该列中的值已更改的项目。这也意味着如果您还更新了 last_modified
时间戳,则没有 -f
的重新索引应该可以工作。
还是不行?
如果重新索引仍然没有发生,则一定是其他地方出了问题。检查您的 dspace.log -- 是否有类似于 "wrote item xyz to index" 的条目?如果不是,那么这些项目不会被重新索引。在您重新编制索引期间,dspace.log 中是否有任何错误消息? solr 日志文件中有任何错误消息吗?
此外,请确保您总是 运行 重新索引(以及所有其他 dspace
命令)与 tomcat 处于 运行 下的同一用户,以避免权限问题。如果您曾经 运行 作为不同用户执行命令,请更改 solr 数据目录(可能 [dspace]/solr/search/data
)的权限,以便 tomcat 用户可以 create/write/delete 中的文件它。
总体推荐
在大多数情况下,我会自己编辑批量元数据以在集合之间移动项目,它避免了所有这些问题,并且会自动触发受影响项目的重新索引。
我需要在两个集合之间移动大量项目。我试图直接在数据库中更改表 "item" 和 "collection2item"、列 "owning_collection" 和 "item_id"。然后我重启了tomcat,清理了cocoon缓存,重建了索引,还是不行。
批量移动物品的过程metadata-export/metadata-import是否比上述过程更安全或更容易?
我还能做什么?
元数据导入过程非常可靠。它还提供了一个预览选项,允许您在应用更改之前查看更改。项目更新后,正确的重新索引过程将 运行.
您只需提供项目 ID 和您要编辑的数据字段。
如果您更喜欢手动或通过 SQL 查询构建 CSV 文件,那也可以。 CSV 顶部的列名称将决定要更新的字段。
https://wiki.duraspace.org/display/DSDOC5x/Batch+Metadata+Editing#BatchMetadataEditing-CSVFormat
如果您 运行 使用 -bf
标志重建索引(-f
可能就足够了),您的过程应该没问题。
没有 -f
标志,reindex(link 进入 DSpace 5.x 的代码)将检查 last_modified
值(在item
table) 并且仅重新索引自上次重新索引以来该列中的值已更改的项目。这也意味着如果您还更新了 last_modified
时间戳,则没有 -f
的重新索引应该可以工作。
还是不行?
如果重新索引仍然没有发生,则一定是其他地方出了问题。检查您的 dspace.log -- 是否有类似于 "wrote item xyz to index" 的条目?如果不是,那么这些项目不会被重新索引。在您重新编制索引期间,dspace.log 中是否有任何错误消息? solr 日志文件中有任何错误消息吗?
此外,请确保您总是 运行 重新索引(以及所有其他 dspace
命令)与 tomcat 处于 运行 下的同一用户,以避免权限问题。如果您曾经 运行 作为不同用户执行命令,请更改 solr 数据目录(可能 [dspace]/solr/search/data
)的权限,以便 tomcat 用户可以 create/write/delete 中的文件它。
总体推荐
在大多数情况下,我会自己编辑批量元数据以在集合之间移动项目,它避免了所有这些问题,并且会自动触发受影响项目的重新索引。