器用なコンテンツタイプのために、searchabletextにキーワードを追加するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/8852132

  •  28-10-2019
  •  | 
  •  

質問

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")
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top