刷新Plone ZCatalog中的非索引元数据

刷新Plone ZCatalog中的非索引元数据,plone,plone-4.x,archetypes,Plone,Plone 4.x,Archetypes,Zope目录包含具有索引属性(用作查询参数)和元数据属性(在访问搜索结果时可用)的目录对象。对于索引属性,当索引的计算逻辑发生变化时,有可能重新编制索引 我注意到我的getThumbnailPath元数据字段对于基于原型的内容类型之一不正确。当然,元数据字段内容不会在方法更改时自动更改;因此,我想在升级步骤中解决这个问题 然而,对于元数据字段,似乎没有文档化的方法可以做到这一点;政府对此没有多大说明 最先进的方法是什么 有没有办法刷新某个元数据字段 我是否需要对受影响的类型进行目录搜索,并重新

Zope目录包含具有索引属性(用作查询参数)和元数据属性(在访问搜索结果时可用)的目录对象。对于索引属性,当索引的计算逻辑发生变化时,有可能重新编制索引

我注意到我的
getThumbnailPath
元数据字段对于基于原型的内容类型之一不正确。当然,元数据字段内容不会在方法更改时自动更改;因此,我想在升级步骤中解决这个问题

然而,对于元数据字段,似乎没有文档化的方法可以做到这一点;政府对此没有多大说明

最先进的方法是什么

  • 有没有办法刷新某个元数据字段
  • 我是否需要对受影响的类型进行目录搜索,并重新索引每个项目(同时重新计算每个其他索引和元数据字段)
  • 我应该创建一个同名的索引,然后删除该索引,还是不管怎样都没有关系

更新:目前,我选择了第二种可能性,但这种类型的1069个对象需要约100秒的时间,而所有其他对象也会受到影响,这很容易需要数小时;最好有一种更具选择性的方法。

每当对象被索引时,目录元数据都会更新。我认为更新它的最快方法是重新索引每个对象,指定一个要更新的索引:

portal_catalog.catalog_object(obj, idxs=['getId'])
所需时间取决于元数据中包含多少对象和多少字段


(在其他情况下,如果您想在不花时间更新目录元数据的情况下进行索引,请将update_metadata=False传递给相同的方法。)

我在论坛上发布了一个指向您的问题的链接,(但我看到您已经得到了非常明确的答案,耶!)很酷,谢谢!(这是一个特权操作,还是我可以自己做呢?)。你也可以直接在那里提问。有一段时间,这里回答问题的普隆人似乎越来越少。你可以在我们的社区网站上找到关于这个主题的有趣线索: