Zopeで日本語全文検索 - MJSplitter 0.1 リリース
Zopeで日本語の全文検索をするためのプロダクト、「MJSplitter」をリリースしました。
MJSplitter 0.1 released
http://zope.org/Members/mojix/MJSplitter/0.1release
MJSplitterは、日本語の解析に「MeCab」を用いる、ZCTextIndex用の日本語Splitterです。
MeCab (和布蕪)
http://cl.aist-nara.ac.jp/~taku-ku/software/mecab/
これまでZopeの日本語検索では「ChaSen」が使われることが多かったのですが、MeCabはChaSenの平均3-4倍のスピードで解析できるとされており、MJSplitterではこのMeCabを選びました。
今朝より公開したmojix.orgの全文検索機能は、このMJSplitterを使っています。mojix.orgでは、エントリを追加するときにZCatalog(Zope内蔵サーチエンジン)にも登録されており、この時点で日本語解析もおこなわれ、インデックスに追加されて、検索可能になります。つまり、(日次バッチなどではなく)エントリ投入の直後からただちに検索可能になっています。
MJSplitterはMeCab本体との接続部分に、LinuxなどUnix系の環境ではMeCab作者によるPythonバインディングモジュールを、Windows環境ではYasushi Masuda氏のMeCabLibモジュールを使用しています(MeCabLibは、Thomas Heller氏のctypesを使用)。
本来は、MeCabのPythonバインディング、MeCabLibともに、LinuxやWindowsなどの環境を選びません。しかしMeCabのPythonバインディングにWindowsインストーラがないこと、MeCabLibが用いているctypesをLinuxで利用するのはやや困難なことなどから、環境別に上記の組みあわせを想定しています。
今回の0.1リリースでは、品詞によるフィルタリングなどはまだ実装されていませんが、通常の用途にはひとまず足りるものと思います。
Zopeで日本語検索をしたい人は、ぜひMeCabをインストールして、MJSplitterを試してみてください。
MJSplitter 0.1 released
http://zope.org/Members/mojix/MJSplitter/0.1release
MJSplitterは、日本語の解析に「MeCab」を用いる、ZCTextIndex用の日本語Splitterです。
MeCab (和布蕪)
http://cl.aist-nara.ac.jp/~taku-ku/software/mecab/
これまでZopeの日本語検索では「ChaSen」が使われることが多かったのですが、MeCabはChaSenの平均3-4倍のスピードで解析できるとされており、MJSplitterではこのMeCabを選びました。
今朝より公開したmojix.orgの全文検索機能は、このMJSplitterを使っています。mojix.orgでは、エントリを追加するときにZCatalog(Zope内蔵サーチエンジン)にも登録されており、この時点で日本語解析もおこなわれ、インデックスに追加されて、検索可能になります。つまり、(日次バッチなどではなく)エントリ投入の直後からただちに検索可能になっています。
MJSplitterはMeCab本体との接続部分に、LinuxなどUnix系の環境ではMeCab作者によるPythonバインディングモジュールを、Windows環境ではYasushi Masuda氏のMeCabLibモジュールを使用しています(MeCabLibは、Thomas Heller氏のctypesを使用)。
本来は、MeCabのPythonバインディング、MeCabLibともに、LinuxやWindowsなどの環境を選びません。しかしMeCabのPythonバインディングにWindowsインストーラがないこと、MeCabLibが用いているctypesをLinuxで利用するのはやや困難なことなどから、環境別に上記の組みあわせを想定しています。
今回の0.1リリースでは、品詞によるフィルタリングなどはまだ実装されていませんが、通常の用途にはひとまず足りるものと思います。
Zopeで日本語検索をしたい人は、ぜひMeCabをインストールして、MJSplitterを試してみてください。