我遇到了正在运行的dspace的特殊情况。我需要假设某个项目发生了某些更新,因此这会触发通过OAI协议重新获取。
最好的方法是什么?我应该直接到达数据库并自己更改最后修改的值,还是可以在对象上执行上下文提交而不对其执行任何操作。
我只是想确保使用来自内部dspace repo的项目的外部存储库,即使没有发生任何更改,也可以定期自动对内部存储库的所有项目执行此操作。
非常感谢
答案 0 :(得分:1)
要为初始收获准备集合,您需要确保集合项可供OAI服务使用。
如果您更改项目(通过任何方法),请运行
.../bin/dspace oai import
.../bin/dspace oai clean-cache
上面列出的命令应该安排在你的cron中。
出于测试目的,请运行以下命令强制刷新所有内容
.../bin/dspace oai import -c
.../bin/dspace oai clean-cache
在OAI SOLR存储库中,该项目将如下所示。
{
"item.id": 858,
"item.public": true,
"item.handle": "10822/761511",
"item.lastmodified": "2016-04-15T23:25:13.321Z",
"item.submitter": "user@org.edu",
"item.deleted": false,
"item.collections": [
"col_10822_552792"
],
"item.communities": [
"com_10822_707896",
"com_10822_707878",
"com_10822_1"
],
...
}
从您的收藏中收集更新
一旦建立了收集的集合,收割机将继续轮询源集合以获取更新。
这些更新基于item.lastmodified日期。您必须触发item.lastmodified日期的更新才能触发重新获取项目。