处理错误:索引中已存在值为xxxx的其他文档

时间:2015-05-18 01:15:00

标签: plone

什么会导致我的目录中的多个文档具有相同的"唯一ID"?实际上是这样的错误:

  

ERROR Products.ZCatalog具有价值的其他文档   ' xxxx341a9f967070ff2b57922xxxx'已经存在于索引中。'

我该怎么办呢?

1 个答案:

答案 0 :(得分:2)

我今天也遇到了同样的错误。

简而言之:portal_catalog(ZCatalog UUIDIndex)中的UID索引抱怨您尝试使用相同的UID索引多个对象

在我的情况下,它是由包含已存在于另一个文件夹中的图像的文件夹的zexp导入引起的。

要重现:

  1. 将生产buildout,数据库和blobstorage复制到登台服务器

  2. 对staging.com/folder1进行一些更改

  3. 将staging.com/galleries/gallery1移至staging.com/folder1

  4. 将staging.com/folder1导出到folder1.zexp

  5. 删除production.com/folder1

  6. 在production.com/manage上使用ZMI导入/导出来导入folder1.zexp

  7. 您将获得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并在门户目录上运行清除和重建。
    • 或者通过production.com/galleries/gallery1替换production.com/folder1/gallery(删除,剪切,粘贴)

    如果具有相同UID的对象实际上不相同(在我的情况下),您可以使用object._setUID('new-uid')为它们提供新的和唯一的UIDS,然后重建目录。