[Senna-dev 345] Re: N-gramインデックスのSennaのAlter操作について

Back to archive index

Tasuku SUENAGA a****@razil*****
2006年 9月 20日 (水) 17:24:14 JST


末永です。

> -------------------------------------------------------------------------
> 1)fulltext index using senna, ngram, no normalize なカラム "body" を持
> つテーブル "articles" の作成
> 
> 2)作成したテーブルにデータを insert し、全文検索ができること・インデッ
> クスが正常に生成されていることを確認
> 
> 3)alter table articles add で text カラム "" を "articles" に追加
> -------------------------------------------------------------------------
> 
> 上記を実行した後、再度(2)と同じ、検索クエリで検索を行うと検索結果が 0 
> になっており、さらにインデックスを確認すると、NGRAM オプションが消え NORMALIZE
> オプションが付与されたインデックスになっております。

http://qwik.jp/senna/knownproblems.html
にある、
「MySQLバインディングにおいて、
 alter table時にインデックス作成時のフラグが反映されない」
という不具合です。

MySQLはalter tableでフィールドを増やしたりする際、
全てのインデックスを作り直そうとします。
その際にパラメータが渡されないため、
デフォルトのインデックスを作成してしまいます。

その際、MeCabが入っていない環境ですと、
形態素解析に失敗し、空のインデックスが作成されてしまいます。

不具合だとは認識しているのですが、
回避するための工数がかかりそうなので、
修正は後回しになりそうです。

完全N-gramインデックスについてもそうですが、
Senna本体に手を入れることで回避は可能です。
誰かパッチを作ってくれないかなあ、と淡い期待をしていたりします。。



Senna-dev メーリングリストの案内
Back to archive index