CJKSplitterの利用 [Plone.3.3]
デフォルトでは日本語検索ができない。日本語検索を有効にするには、日本語用 Splitter を導入する必要がある。ここでは CJKSplitter 0.7.3 を用いるものとする。公開情報のみであれば、Googleに任せるのも良いかもしれない。
CJKSplitterのインストール
CJKSplitterのインストール
$PLONE_INSTANCE : /usr/local/Plone/zinstance (Plone のインスタンス)
CJKSplitter を http://www.zope.org/Members/panjunyong/CJKSplitter よりダウンロードし解凍する。デフォルトではカタカナが検索できないため、CJKSpliter.py を2箇所、以下のように修正する。
- \u3040-\u309f + \u3040-\u30ff
修正後 cjksplitter-0_7_3-eng.tgz として圧縮し、開発用ソースディレクトリに格納する。
mv cjksplitter-0_7_3-eng.tgz $PLONE_INSTANCE/src/
次にインスタンス内の buildout.cfg を設定する。
[productdistros] : urls = : + src/cjksplitter-0_7_3-eng.tgz
最後に設定を反映する。
# bin/buildout # bin/plonectl stop; bin/plonectl start
CJKSplitterの設定
日本語検索用辞書の作成
ZMI で Plone のルートの portal_catalog を開く。ここに Add ZCTextIndex Lexicon を追加する。
Id : CJKSplitter Title : Case Normalizer : Unicode Case Normalizer (大文字小文字を区別しない) Stop Words : Don't remove stop words (一般的な単語と、1文字だけの単語も検索に含める) Word Splitter : CJK Splitter (利用するスプリッタ)
日本語検索用カタログの作成
portal_catalog の Indexes タブを開き、以下の3項目を削除する。
Description SearchableText Title
次に削除した3項目を CJKSplitter で検索できるようにする。ZCTextIndex を追加する。
- Description
Id : Description Indexed attributes : Ranking Strategy : Okapi BM25 Rank Lexicon : CJKSplitter
- SearchableText
Id : SearchableText Indexed attributes : Ranking Strategy : Okapi BM25 Rank Lexicon : CJKSplitter
- Title
Id : Title Indexed attributes : Ranking Strategy : Okapi BM25 Rank Lexicon : CJKSplitter
カタログのアップデート
portal_catalog の Advanced タブを開き、Update Catalog を実行することで、インデックスが再作成される。最後に、Plone 上で日本語検索を行い、確認すれば完了。