如何为SexchableText添加Dexterity内容类型的关键字?

And*_*ord 5 plone dexterity

我有一个运行Plone 4.1的站点,它具有使用Dexterity 1.1开发的自定义内容类型.我的内容作者可以使用"分类"选项卡向基本Plone页面添加关键字,如果用户使用其中一个关键字进行搜索,则用户可以成功找到这些页面.

我的内容作者也使用我开发的Dexterity自定义内容类型制作了页面.这是使用基于Python的文件系统架构定义的.如果用户在敏捷内容类型的标题和描述中搜索术语,他们将在搜索结果中返回敏捷页面.如果他们在关键字字段中使用查询字词进行搜索,则无法获得任何结果.但是,在高级搜索表单下,如果他们突出显示标签列表中的相应标签,他们可以找到Dexterity页面.

我使用ZMI中的portal_catalog工具检查了搜索索引的内容.似乎关键字被添加到SearchableText字段中以获取基本内容类型(如Page),但对于基于Dexterity的自定义内容类型,它们不是.

我是否需要编写其他代码以将关键字字段的内容插入SearchableText索引?

Rig*_*ala 6

假设你的Dexterity内容类型实现了IFoo,你的模式中定义的keywords属性是一个字符串列表.

您可以通过以下方式定义索引器:

from five import grok
from plone.indexer.decorator import indexer
from my.dexteritycontent.foo import IFoo

@indexer(IFoo)
def searchableIndexer(context):
    keywords = " ".join(context.keywords)
    return "%s %s %s" % (context.title, context.description, keywords)

grok.global_adapter(searchableIndexer, name="SearchableText")
Run Code Online (Sandbox Code Playgroud)