Plone3のインターフェイスを利用した検索

Plone2の検索において、図1に示す2つのコンテンツタイプ「A,B」に限定して検索したい際、

パラメータを、’portal_type’:(‘A’,’B’,)と2つのコンテンツタイプを指定していました。

1
図1

Plone3でも、もちろん上記のようにして検索可能ですが、3では、インターフェイスを指定して、検索することもできます。図2のように、ISearchインターフェイスを用意して、A,Bコンテンツタイプから引き継ぎます。

2 
図2

そして、従来指定方法「’portal_type’:(‘A’,’B’,)」を「’object_provides’:(ISearch.__identifier__,)」とすることで、ISearchインターフェイスを実現元としているコンテンツタイプに限定して検索することができます。つまり、図2だと、コンテンツタイプA,Bとなります。

使い方によっては、とっても便利です。ただ、多重継承により、予期していないコンテンツまで抽出してしまうという問題もあるので、利用には注意が必要です。まあ、しっかりと設計していれば、問題はないと思います。