什么会导致我的目录中的多个文档具有相同的"唯一ID"?实际上是这样的错误:
ERROR Products.ZCatalog具有价值的其他文档 ' xxxx341a9f967070ff2b57922xxxx'已经存在于索引中。'
我该怎么办呢?
答案 0 :(得分:2)
我今天也遇到了同样的错误。
简而言之:portal_catalog(ZCatalog UUIDIndex)中的UID索引抱怨您尝试使用相同的UID索引多个对象
在我的情况下,它是由包含已存在于另一个文件夹中的图像的文件夹的zexp导入引起的。
要重现:
将生产buildout,数据库和blobstorage复制到登台服务器
对staging.com/folder1进行一些更改
将staging.com/galleries/gallery1移至staging.com/folder1
将staging.com/folder1导出到folder1.zexp
删除production.com/folder1
在production.com/manage上使用ZMI导入/导出来导入folder1.zexp
您将获得gallery1文件夹及其所有内容项的错误:
2015-06-15T17:58:22 ERROR Products.ZCatalog A different document with value '618a9ee3544a4418a1176ac0434cc63b' already exists in the index.'
<强>诊断强>
production.com/resolveuid/618a9ee3544a4418a1176ac0434cc63b 将带你到production.com/galleries/gallery1/image1
而staging / resolveuid / 618a9ee3544a4418a1176ac0434cc63b 将带您到staging.com/folder1/gallery1/image1
production.com/folder1/gallery1/image1确实也被编目了,但是因为它与productionuid,production.com/galleries / gallery / image1的结果具有相同的uid,目录查询,内部链接等内容可能是随机的< / p>
如何修复
就我而言,我认为这可能是最好的
production.com/galleries/gallery1
并在门户目录上运行清除和重建。如果具有相同UID的对象实际上不相同(在我的情况下),您可以使用object._setUID('new-uid')
为它们提供新的和唯一的UIDS,然后重建目录。