Import 在集合之间移动项目

Import 在集合之间移动项目,import,export,move,items,dspace,Import,Export,Move,Items,Dspace,我需要在两个系列之间移动大量的物品。我试图直接在数据库中更改表“item”和“collection2item”、列“owning_collection”和“item_id”。然后我重新启动了tomcat,清理了cocoon缓存,重建了索引,但它仍然不工作 对于项目的大规模移动,流程元数据导出/元数据导入是否比上述方法更安全或更容易 我还能做什么?元数据导入过程非常可靠。它还提供了一个预览选项,允许您在应用更改之前查看更改。更新项目后,将运行适当的重新索引过程 您只需要提供要编辑的项目ID和数据字

我需要在两个系列之间移动大量的物品。我试图直接在数据库中更改表“item”和“collection2item”、列“owning_collection”和“item_id”。然后我重新启动了tomcat,清理了cocoon缓存,重建了索引,但它仍然不工作

对于项目的大规模移动,流程元数据导出/元数据导入是否比上述方法更安全或更容易


我还能做什么?

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

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

如果您更喜欢手动或通过SQL查询构建CSV文件,这也可以。CSV顶部的列名称将决定要更新的字段


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

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

如果您更喜欢手动或通过SQL查询构建CSV文件,这也可以。CSV顶部的列名称将决定要更新的字段


如果您使用
-bf
标志运行reindex,您的过程应该是正常的(只需
-f
就足够了)

如果没有
-f
标志,则(链接到从DSpace 5.x开始的代码)将检查
上次修改的
值(在
表中),并且仅检查自上次重新索引以来该列中值已更改的重新索引项。这也意味着,如果还更新了上次修改的时间戳,则不带
-f
的重新索引应该可以工作

仍不工作?

如果重新索引仍然没有发生,那么一定是出了问题。检查dspace.log--是否有类似“已将项xyz写入索引”的条目?如果没有,则不会对项目重新编制索引。在执行重新索引时,dspace.log中是否有任何错误消息?solr日志文件中有错误消息吗

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

总体建议


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

如果使用
-bf
标志运行重新索引,您的过程应该是正常的(仅
-f
也可能足够)

如果没有
-f
标志,则(链接到从DSpace 5.x开始的代码)将检查
上次修改的
值(在
表中),并且仅检查自上次重新索引以来该列中值已更改的重新索引项。这也意味着,如果还更新了上次修改的时间戳,则不带
-f
的重新索引应该可以工作

仍不工作?

如果重新索引仍然没有发生,那么一定是出了问题。检查dspace.log--是否有类似“已将项xyz写入索引”的条目?如果没有,则不会对项目重新编制索引。在执行重新索引时,dspace.log中是否有任何错误消息?solr日志文件中有错误消息吗

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

总体建议


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

感谢您的关注。我想我将使用批处理元数据编辑器来大规模移动项目。一个改变我想要移动的字段的脚本应该可以工作。谢谢大家的关注。我想我将使用批处理元数据编辑器来大规模移动项目。一个脚本可以改变我想要移动的字段。谢谢你的解释。出于好奇,你知道reindex是如何工作的吗?在源代码中有我可以找到它的地方吗?在我更改所属集合后上次修改的列没有更改,所以我手动进行了更改。然后我尝试了-bf标志,但它仍然不起作用。我在我的答案中添加了一个指向重新索引代码的链接。谢谢你的解释。出于好奇,你知道reindex是如何工作的吗?在源代码中有我可以找到它的地方吗?在我更改所属集合后上次修改的列没有更改,所以我手动进行了更改。然后我尝试了-bf标志,但它仍然不起作用。我在我的答案中添加了一个指向重新索引代码的链接。