Plone on MacOS Xに日本語検索機能
特にひねりもなく,素直にインストールできます.
前提条件
すでに,MacOS XでZope + Ploneが動いているのが前提です.Ploneを動かす一番簡単な方法は,Ploneのサイトから,MacOS X用のインストーラーをダウンロードすることです.当方のテストサイト(現在は停止中)では,そのAll-in-oneインストーラーによらず,Python 2.3をFinkでインストールしてZope-2.8.5-finalをBuild & Installし,そこにPloneのソースを組み込んでいます.
参考記事
- Hosting on MacOS X, "Package vs. Source"
必要ライブラリー
MeCabを使うMJSplitterをインストールします.必要となるのは,MeCab Lib, MeCab Python, JapaneseCodesです.それと,おまけにPILです.
MeCab Lib
使用したのは,手元にあったMeCab 0.81です.適当なところに展開して,ディレクトリー内のサブディレクトリー"dic"内にipadic-2.5.1を展開します.MeCab 0.81で使えるipadicの最新はこの2.5.1のようです.
mecab-0.81から,
./configure --prefix=/sw
して,make; sudo make installでいきます.
MeCab Python
mecab-python-0.81を展開してディレクトリーに入ります.このライブラリー以下,Pythonのモジュールのインストールでは,Zopeを動かして いるPythonでbuild & installする必要があります.PloneからダウンロードできるAll-in-oneのインストーラーは,どこにどのバージョンのPythonをイ ンストールするのか(あるいは既存のPythonを使うのか)知りません^^;
FinkでPython 2.3.5をインストールしている場合は,/sw/bin/python2.3で,Zope-2.8.5-finalなど比較的新しい2.8.xを使っている場合は要2.3.5ですので,面倒でもフルパスで指定した方が確実です.
/sw/bin/python2.3 setup.py build
sudo /sw/bin/python2.3 setup.py install
もちろん,buildなしに,いきなりinstallでもいいです.
JapaneseCodecs
JapaneseCodecs-1.4.11を使いました.これも,Pythonモジュールなので,
sudo /sw/bin/python2.3 setup.py install
で,完了.
PIL (Imaging)
これは,日本語検索に関係ありませんが,PoneやCOREBlog2の画像縮小機能で使用しますので,インストールしました.Imaging-1.1.5を使いました.これも,
sudo /sw/bin/python2.3 setup.py install
MJSplitter
いよいよ,MJSplitterです.Version 0.1を使いました.Zopeのインスタンスディレクトリー内のProducts内に展開します.その中の settings.pyをいじります.
text_charset = 'utf-8'
dic_charset = 'euc-jp'
当方は,dic_charsetはeuc-jp以外で成功したことがないからこのようにしています.また,mecab_libpathはコメントアウトしています.
検索機能の実装
Zopeをいったんシャットダウンしてから起動します.ploneのZMIに入り,portal_catalogに入ります.この状態でcontentsタブがアクティブになっていますので, ZCTextIndex LexiconをAddします.UTF-8ですが,日本語の辞書を使っているため,日本語でしか使えませんから,IDは jp_lexiconなどとし,Word Splitterに,MJSplitterを選びます.lexiconなどの漠然としたIDを付けると,後で必ず 誰が^^; どういう目的でインストールしたのか,それとも,そもそもシステムに付いてきたのかわからなくなります.
この辺から先はそこここのWebに書かれているPloneへの日本語検索機能の実装と寸分違いません.
次 に,Indexesタブを押し,Index
TypeがZCTextIndexとなっている"Description", "Title",
"SearchableText"を削除して再作成します.再作成する際に,Lexiconを今作ったjp_lexiconにするのは言うまでもありませ
ん.
Advancedタブを押し,Update Catalogボタンを押して完了です.
トラブルシュート
私が経験したトラブルいくつか.
- settings.pyのmecab_libpathに余計なことを書いた.
-
- コメントアウトすべし
- Indexの綴り間違い (Description, SearchableText, Title)
-
- よそ様のサイトからコピー&ペーストした場合も,よく綴りを確認.
- Zopeのインスタンスディレクトリーのunix的ownerとZopeのownerの不一致
などです.