跳转到主要内容

忽略所有索引操作

项目描述

文档

目标和用法

将collective.noindexing添加到你的buildout中的egg中。这使得在Plone网站根目录上有两个浏览器视图可用:@@collective-noindexing-apply@@collective-noindexing-unapply。第一个应用一些补丁,第二个撤销补丁。两者都可以安全地多次调用。

仅对单个索引进行补丁(重新索引、索引、取消索引)也是可能的

  • @@collective-noindexing-apply?no-reindex=1

  • @@collective-noindexing-apply?no-index=1

  • @@collective-noindexing-apply?no-unindex=1

或者组合:@@collective-noindexing-apply?no-unindex=1&no-reindex=1

或者全部:@@collective-noindexing-apply

这些补丁修改了一些目录方法,因此根本不会进行索引、重新索引或取消索引。想法是使用这个包,你可以快速将Plone网站的大部分内容移动到不同的文件夹中,而无需担心索引。这确实使移动过程变得更快。你稍后进行索引,可能通过执行目录清除和重建;你在这里对子事务有更多的控制,以帮助避免MemoryError[Errno 24]Too many open files。一个运行目录清除和重建的脚本,并带有一些中间提交,可以帮助大型网站。

替代方案

  • 转到ZMI中的archetype_tool对象,然后转到目录选项卡。关闭所有类型的portal_catalog应该基本上会产生相同的效果。

  • Products.QueueCatalogProducts.PloneQueueCatalog添加到你的buildout的egg中。在portal_quickinstaller中安装PloneQueueCatalog。这会将portal_catalog重命名为portal_catalog_real,并创建一个ID为portal_catalog的ZCatalog队列。标准的设置对我很好。你现在进行大型移动。在新的portal_catalog中,你转到队列选项卡。它应该说你有很多项目在队列中,在我的案例中大约有12,000个。点击“处理队列”按钮将默认处理队列中的20个项目。你可以增加这个数字。这是一种避免索引过程中的MemoryError的简单方法,因为一次重新索引的对象总数将低到你想要的水平。

    注意,我尝试了这一点,但遇到了问题,因为该网站有一个独立的portal_catalogCatalogData.fs中,直到我重启zeoclient之前一切正常。通过一些调整应该可以工作,但我不想麻烦。我们可以回头再看看,当索引成为经常而不是偶尔的问题时。

兼容性

在Plone 4.3、5.1和5.2上,Python 2.7和3.7上进行了测试。

对于更早的Plone版本,请使用版本1.4。

作者

莫里茨·范·里斯

变更日志

2.0.0 (2019-11-20)

  • 设置Travis。[gotcha]

2.0.0b1 (2019-11-11)

  • 移除了对Python 2.6或更低版本和Plone 4.2或更低版本的兼容性。[maurits]

  • 添加了Plone 5兼容性。不要求使用Archetypes。[gotcha]

1.4 (2013-03-26)

  • 使对单个索引方法(索引、重新索引、取消索引)的补丁成为可能。[maartenkling]

1.3 (2012-09-24)

1.2 (2012-04-18)

  • 修复了取消应用方法,以便第二次应用可以正确工作。[maurits]

  • 使用plone.app.testing添加了测试。[maurits]

  • 通过加载Products.CMFCore zcml权限,添加了与Plone 4.1的兼容性。[maurits]

1.1 (2011-01-04)

  • 将大部分日志记录设置为调试级别,因为它很快就会在您最需要此包的情况下变成噪音。[maurits]

1.0 (2010-04-09)

  • 初始发布

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分发

collective.noindexing-2.0.0.tar.gz (16.0 kB 查看散列)

上传时间

构建分发

collective.noindexing-2.0.0-py2.py3-none-any.whl (8.5 kB 查看散列)

上传时间 Python 2 Python 3

支持