Zopeで日本語の検索ができるようにするためには、日本語を分かち書き(単語ごとに空白をいれる)ことができるようにする必要があります。ここでは、インストールが簡単な ejSplitter をインストールします。
最新版のejSplitter ejSplitter-0.5.0.tar.gz をダウンロードします。
Products ディレクトリに移動します。
デフォルトでは下記のディレクトリになります。
C:\Zope-Instance\Products/var/lib/zope/Products/ただし、Vine Linux環境の場合は、プロダクトの所有者と所有グループを zope にしておく必要があります。 下記のコマンドを実行して所有権の変更をしてください。
% sudo chown -R zope:zope /var/lib/zope/Products/ejSplitter
Ploneでは検索に関する設定は portal_catalog という名前の Plone Catalog Tool に入っています。ここの設定を変更することにより、先ほどインストールした ejSplitter を使って日本語で検索できるようになります。
portal_catalog に移動します。
ZCTextIndex Lexicon というオブジェクトを追加します。
設定項目の詳細は以下のとおりです。
ejSplitter としておきます。次に、Ploneのコンテンツを ejSplitter を使って分かち書きするように変更します。
portal_catalog の Indexes タブをクリックします。
Description, SearchableText, Title インデックスの設定を変更します。最初に、この3つのインデックスを選択して Remove index ボタンをクリックし、一旦削除します。
ZCTextIndex を追加します。
Description, SearchableText, Title インデックスを再度作成します。(3, 4の手順を3回繰り返します。)
設定項目の詳細は以下のとおりです。
Description, SearchableText, Title というインデックスの対象となるフィールド名を入力します。Okapi BM25 Rank を選択します。ejSplitter を選択します。
0 だからです。新規に作成したインデックスは明示的にインデックスの再構築を行なう必要があります。インデックスを再作成するために、3つのインデックスをチェックし、Reindex ボタンをクリックします。すると、下記のようにオブジェクトが登録されます。