器用なコンテンツタイプのために、searchabletextにキーワードを追加するにはどうすればよいですか?
質問
Dexterity 1.1で開発されたカスタムコンテンツタイプを備えたPlone 4.1を実行しているサイトがあります。私のコンテンツの著者は、カテゴリ化タブを使用して基本的なPloneページにキーワードを追加でき、ユーザーがキーワードのいずれかを使用して検索すると、これらのページを正常に見つけることができます。
私のコンテンツの著者は、Dexterity Custom Content Type Iが開発したページも作成しました。これは、Pythonベースのファイルシステムスキーマを使用して定義されました。ユーザーがタイトルで用語を検索し、器用なコンテンツタイプの説明を検索すると、検索結果の器用さページを取り戻します。キーワードフィールドでクエリ用語を使用して検索すると、結果が得られません。ただし、高度な検索フォームでは、タグのリストに適切なタグを強調表示すると、器用さページを見つけることができます。
ZMIのportal_catalogツールを使用して、検索インデックスの内容を検査しました。キーワードは、ページなどの基本的なコンテンツタイプのために検索AbleTextフィールドに追加されているようですが、私の器用さベースのカスタムコンテンツタイプはそうではありません。
キーワードフィールドのコンテンツをSeartAbletextインデックスに挿入するために追加のコードを記述する必要がありますか?
解決
器用なコンテンツタイプがifooを実装しているとし、スキーマで定義されているキーワード属性が文字列のリストであるとします。
この方法でインデクサーを定義します。
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")
所属していません StackOverflow