メモ

とりあえずsyncdbは問題ないのですが、指定したカラムをFULLTEXT化するために、
後々変更する必要があります:-)

ALTER TABLE spam ADD FULLTEXT(egg);

これだけやっておけば問題無いでしょう。

メモ

あれれ Model.objects.filter(blog__search='スパムとか') で検索できないなぁ。
もう少し検証の必要性アリ。

追記

id:tasukuchanさんからのアドバイスまとめ

1. N-gramでやってみて、うまくいった場合MeCab辞書の文字コードMySQLと一致していない可能性がある

ALTER TABLE table_name ADD FULLTEXT USING NGRAM(blog);

その際はMeCabを再インストールしてみる

2. 文字コード問題の可能性

やはりMySQL文字コード問題から逃げられないのか...

文字コードの自動変換がかかっている可能性があります。

解決策は skip-character-set-client-handshake を設定し文字コードの自動変換をスキップする...ということでしょうか。

まずはやってみてなんぼですね..:P

自分の状態メモ

  • mysql>からの場合、全文検索(MeCab)は問題ない:-)
  • MeCabは--with-charset=utf8, MySQLも--with-charset=utf8
  • Djangoでデータの追加や削除は問題なく行えている(管理画面のみで確認)
  • 管理画面の文字化け等、文字化けは今のところ出ていない
  • Sennaのインデックスが化けているというのが可能性ある。

なんか検証するのが楽しくなってきた:-)

ToDo

  • Ubuntuでやっているので、余裕が出来たらCentOSとかでも調べてみたいなぁ。
  • Countの遅さチェック
  • Model.objects.filter(spam__search='スパム!')の動作確認。