Plone 4 にて日本語検索がデフォルトで可能になります
http://dev.plone.org/plone/ticket/9309#comment:47
経緯
Plone研究会や、Zope/Plone開発勉強会などを含めて開発を進めてきました、
東アジア言語(日本語を含む)検索を、Ploneのデフォルトで可能にすると言う件ですが、Plone 4 のプロポーザル(PLIP)として通し、その後何度かの改造を経て、Ploneフレームワークチームにより投票され、取り込まれることと、なりました。
実装
当初は、モンキーパッチ形式で開発を行っておりましたが、CMFPloneなどのコードを直接変更する方式に変更しました。
旧来の、CMFPlone/UnicodeSplitter.py を CMFPlone/UnicodeSplitterパッケージとしその中に、コードをまとめ、Bi-gram方式にてスプリットをさせています。
さらに、Zope側のZCTextIndex/Lexicon.py 内の処理を1行変更しています。
Zope側の物は、サーチ時時に2回スプリットされるのですが、その2回目の処理が、
インデックス時のスプリットと同じ物が使われていました。専用のメソッドが
準備されていればそれを使うように改造しています。(Zope2.12.1で取り込まれる方向)
これらのテストコードを含めて構築しました。
今後
Plone3においても、このコードが適用できるようにするパッチやプロダクトを展開していきます。準備が出来したら改めてご相談します。
最後に
今回のこのプロジェクトに対して、retsuさん、穂苅さんの多大なる協力を頂きましたことを付け加えさせて頂きます。
また、巨大なシステムをオープンソースで開発する手法ややりとりなど、非常に学ぶべきことが多くありました。
これで本当の意味でPloneコミッターとしての活躍が出来たと思います。今後も様々な物に取り組んでいきたいと思います。