2011年2月21日月曜日

WhooshのTokenizerを作るときにはまったこと

TinySegmenterTokenizerを作っていたときにはまったこと。

WhooshではSchemaがインデックス内にpickle化されて保存されるので、Schemaを作るときに指定したTokenizerもpickle化出来ないとエラーになります。

コンストラクタで
def __init__(self, strip):
    if strip:
        self.strip = unicode.strip
    else:
        def strip(s):
            return s
        self.f = strip
等とやっていてはまりました。

データを作ったTokenizerがセットで保存されているのは良いと思うのですが、インデックスを複数のPythonのバージョンで共有できるのか気になります。そのうち試す…

はまったことではありませんが、pythonのunicode.stripは全角スペースやNBSPなども除去してくれる優れものであることが分かりました。

0 件のコメント:

コメントを投稿