パーソナルツール
現在の場所: ホーム plone 基本 日本語での検索
書いた本
Plone 完全活用ガイド の Chapter 1, 2, 3, 11 を執筆しました。
plone のインストール、使い方から、機能・デザインのカスタマイズ、プロダクトの作り方まで、 plone のすべてがぎゅっと詰まっている書籍になっていると思います。
plone に興味がある人から、すでに使いこなしている方まで、ぜひ読んでみてください。
Plone 完全活用ガイドのサポートページ
ナビゲーション

 
文書操作

日本語での検索

作成者 takanori 最終変更日時 2005年01月05日 16時21分

Ploneには最初からコンテンツを検索する機能がありますが、初期状態では日本語での検索には対応していません。日本語検索をできるようにするために、ejSplitterをインストールして設定する手順を記述します。

目次

  • ejSplitterのダウンロードとインストール[ejsplitter]
  • 日本語での検索設定[catalog]
    • 日本語検索用辞書の作成[lexicon]
    • 日本語検索用インデックスの作成[index]

ejSplitterのダウンロードとインストール[ejsplitter]

Zopeで日本語の検索ができるようにするためには、日本語を分かち書き(単語ごとに空白をいれる)ことができるようにする必要があります。ここでは、インストールが簡単な ejSplitter をインストールします。

  1. 最新版をダウンロード

    最新版のejSplitter ejSplitter-0.5.0.tar.gz をダウンロードします。

  2. tar 等のコマンドを使用して、ダウンロードした圧縮ファイルを展開します。
  3. すると、ejSplitter というディレクトリができるので、このディレクトリを Products ディレクトリに移動します。 デフォルトでは下記のディレクトリになります。
    • Windows環境: C:\Zope-Instance\Products
    • Vine Linux環境: /var/lib/zope/Products/

    ただし、Vine Linux環境の場合は、プロダクトの所有者と所有グループを zope にしておく必要があります。 下記のコマンドを実行して所有権の変更をしてください。

    % sudo chown -R zope:zope /var/lib/zope/Products/ejSplitter
    

  4. ejSplitterをインストールしたら、Zopeサーバに認識させるためにZopeサーバを再起動します。
  5. 再起動後、Zopeの管理画面(http://localhost:8080/manage")にWeb browserでアクセスします。'Control_Panel'の下の'Products'に移動します。

    Select Products folder

  6. するとZopeにインストールされているプロダクトの一覧が表示されます。この中にejSplitterが正しく表示されていることを確認します。

    ejSplitter in Products

日本語での検索設定[catalog]

Ploneでは検索に関する設定は portal_catalog という名前の Plone Catalog Tool に入っています。ここの設定を変更することにより、先ほどインストールした ejSplitter を使って日本語で検索できるようになります。

日本語検索用辞書の作成[lexicon]

  1. Zopeの管理画面にアクセスし、作成したPlone Siteの下の portal_catalog に移動します。

    Select portal_catalog

  2. ここに、ejSplitterを登録するため ZCTextIndex Lexicon というオブジェクトを追加します。

    Add ZCTextIndex Lexicon

  3. すると、ZCTextIndex Lexiconの設定項目を聞いてくるので、以下のような項目を設定て、'Add'ボタンをクリックします。

    Add ZCTextIndex Lexicon

    設定項目の詳細は以下のとおりです。

    • Id このオブジェクトの名前です。わかりやすくするために、ejSplitter としておきます。
    • Title とくに指定する必要はありません
    • Case Normalizer (英語の)大文字小文字を区別するかを指定します。チェックしておくと有効(区別しない)となります。
    • Stop Words これは the とか and のような一般的な単語と、1文字だけの単語の扱いをどうするかを指定します。ここでは、一般的な単語と1文字単語を両方とも削除するように指定しています。
    • Word Splitter ここに使用するSplitterを指定します。ここで、ejSplitter(UTF-8)を指定します。

日本語検索用インデックスの作成[index]

次に、Ploneのコンテンツを ejSplitter を使って分かち書きするように変更します。

  1. 最初に portal_catalogIndexes タブをクリックします。

    Select Indexes tab

  2. ここには検索用インデックスとしてPloneの各種フィールドが表示されています。そのうち日本語が入る可能性のある Description, SearchableText, Title インデックスの設定を変更します。最初に、この3つのインデックスを選択して Remove index ボタンをクリックし、一旦削除します。

    Check three indexes

  3. 次に、インデックスを再作成するために、ZCTextIndex を追加します。

    Add ZCTextIndex

  4. 先ほど削除した3つの Description, SearchableText, Title インデックスを再度作成します。(3, 4の手順を3回繰り返します。)

    Add ZCTextIndex

    設定項目の詳細は以下のとおりです。

    • Id ここに、Description, SearchableText, Title というインデックスの対象となるフィールド名を入力します。
    • Indexed attributes ここは何に使うんでしょう?とりあえず何も入力する必要はないようです。
    • Ranking Storategy これも違いがあるようですが、よくわかりません。とりあえず Okapi BM25 Rank を選択します。
    • Lexicon ejSplitter を選択します。
  5. 3つのインデックスが再度作成されていることを確認します。

    List of ZCTextIndex

  6. しかし、このままでは少し問題があります。なぜならば新規に作成したインデックスに登録されているオブジェクト(コンテンツ)の数が 0 だからです。新規に作成したインデックスは明示的にインデックスの再構築を行なう必要があります。インデックスを再作成するために、3つのインデックスをチェックし、Reindex ボタンをクリックします。

    すると、下記のようにオブジェクトが登録されます。

    Reindex ZCTextIndex

  7. 最後に、Plone Siteにアクセスして、右上の検索ボックスから検索を実行し、日本語でも正常に検索できることを確認します。 今後は、Plone上でコンテンツを登録/変更/削除すると、自動的にインデックスは更新されるので、正しく検索を実行することができます。

Powered by vine linux, python, zope, plone, coreblog