更新dexterity类型的SearchableText索引

时间:2014-02-09 22:36:01

标签: plone dexterity

我正在尝试在我的敏捷类型(“资源”)上更新SearchableText,以包含子项目中的文件内容,方法是将其添加到resource.py:

@indexer(IResource)
def subFiles(obj):
    searchable_text = obj.SearchableText()

    for item in obj.getFolderContents({'portal_type': 'File'}, full_object=True):
        searchable_text += item.SearchableText()
    return searchable_text

grok.global_adapter(subFiles, name="SearchableText")

我知道我需要一个事件来更新它,但相信我应该能够通过从ZMI手动“清除和重建”来查看修改索引,但是对于此内容的对象,SearchableText的值不会发生任何变化类型。我也没有看到任何错误,所以我不确定问题出在哪里。

1 个答案:

答案 0 :(得分:2)

好吧,我没有认出here,你正在使用灵巧。

您需要dexteritytextindexer行为: https://github.com/collective/collective.dexteritytextindexer

在容器类型上启用此功能。

<property name="behaviors">
    <element value="collective.dexteritytextindexer.behavior.IDexterityTextIndexer" />
</property>

使用dexteritytextindexer,您可以采用不同的方法来索引容器上的数据。检查dexteritytextindexer.IDynamicTextIndexExtender