Splitter for ZCTextIndex

2006/12/19 更新

 ZCTextIndex Lexicon オブジェクトと併せて使い、ZCatalogによるテキスト検索ができるようにするものです。ZCatalog にプラグインする  Indexの一種で、Zope 2.6.0より Zopeの標準配布に含まれるようになりました。

 同様のことが TextIndex と vocabraryによって行うことができますが

  1. Splitterを Zope本体の Pythonコードを改変しなくてもインストールできる
  2. 速度
  3. フィルターをつなぎあわせることにより、柔軟な語彙登録ができる
  4. ランキングのアルゴリズムを切り替えられる

あたりが、利点らしいです。

日本語の使える Splitter

 日本語のテキスト検索をするためには、日本語が分かち書きできる ZCTextIndexのための Splitterをインストールします。
 今のところ、以下のものがあります。すべてをインストールする必要はなく、いずれかが入っていれば構いません。

  1. ejSplitter
  2. ChaSplitter
  3. JSplitter
  4. AJSplitter
  5. MecabSplitter
  6. JUTSplitter
  7. ZCJPSplitter

Splitterのインストール

1.ejSplitter のインストール

  1. JapaneseCodecsをインストールします(Python 2.3.x 以前の場合)
  2. ejSplitter-x.y.tar.gz をダウンロードし、$(INSTANCE_HOME)/lib/python/Productsに展開します。

Plone にインストールする場合は、takanory.net さんの説明が丁寧で判り易いです。

ejSplitter-0.5.1.tar.gzを公開します(2006/12/19)。UTF-8→UNICODE 変換時にエラーとなる場合があるので抑制(http://ml.zope.jp/pipermail/zope-users/2006-July/005805.html)。

ejSplitter-0.5.0.tar.gzを公開します(2004/10/23)。全角英数字と半角英数字を同じもとのして取り扱います。

ejSplitter-0.4.0.tar.gzを公開します(2004/01/15)。長音に関するヒューリスティックルールを追加しました。(深町さんに感謝)

ejSplitter-0.3.1.tar.gzを公開します(2004/01/10)。Ver. 0.3 の Bugfix です。

ejSplitter-0.3.tar.gzを公開します(2004/01/04)。0.2 では、EUC-JP の時、文字コード変換処理を2度通っているため、検索できていませんでした。 不具合の指摘と、修正方法を教えて下さった柴田@WebCoreさんに感謝します。

ejSplitter-0.2.tar.gzを公開します(2003/10/04)。文字コードにより、作成するインスタンスを変えます。 (EUC-JP と UTF-8 のみ対応) EUC-JP を使いたい場合は、JapaneseCodecs が必要ですが、UTF-8 を扱う場合は、とくに必要なモジュールはありません。

2.ChaSplitterのインストール

  1. 茶筅をインストールします

  2. Windowsの場合、JapaneseCodecsをインストールします。(そうじゃないと動きません)

  3. ChaSplitter0.2.tar.gz をダウンロードし、$(INSTANCE_HOME)/lib/python/Productsに展開します。

3.JSplitterのインストール(田原さん作)

 ZCTextIndex版は、今のところ ZMI で日本語が使えるようにするための、http://ml.zope.jp/pipermail/zope-devel/2002-October/000292.html のものしかありません。当該アーカイブをダウンロードして、$(INSTANCE_HOME)/lib/python/Products に展開(普通の Productsのインストールと同じ)したあと $(INSTANCE_HOME)/lib/python/Products/SaruPatch/__init__.pyの内容を

import JSplitter

の1行だけにします。

  JSplitterを動かすためには、他に pykf、chasen モジュール、日本語Codecs等が要るようですが、詳しい情報は他をあたってください。
(PluginIndex版の JSplitterの解説ですが、MAX さんの http://soybean.fubyshare.gr.jp/SiteBites/JSPlitter が参考になります)

使ってみる

 ここでは、例として CMF Siteで検索に ZCTextIndexを使う手順について記述します。すでに、CMF Siteがあり、上記手順に従って、いずれかの Splitterがインストールしてあるものとして、

  1. CMF Site の portal_catalog を開きます
  2. Contentsタブを開き ZCTextIndex Lexicon を Addします。
    その時、Word Splitterには予めインストールした Splitter を指定します。Id には、何か適当な値を設定します。Title はブランクで構いません。
  3. 引き続き portal_catalog 内で Indexes タブを開きます。
  4. Index Typeが 「TextIndex」になっているもの

    をいったん削除して、同じ Id で「ZCTextIndex」を Addします。Field Nameは、Id と同じ場合には入力する必要はありません。
     その時、Add ZCTextIndexの画面で「Lexicon」には、先程 2.で Addした ZCTextIndex Lexionが指定されていることを確認してください。

  5. Indexes タブの中で、ZCTextIndexの項目にチェックを付け、「Reindex」ボタンを押下します。

これで、日本語による検索ができるようになり、新しく追加していく Contentsの日本語もカタログできるようになります。

 

 


Zope メモ