Kouhei Sutou
kou****@clear*****
2013年 5月 3日 (金) 19:07:18 JST
須藤です。 In <CANM+HherUjv66G-KybYKXmMB7_2Eqx+bvWYidZ84Tst2ZUT=dg****@mail*****> "[groonga-dev,01366] 記号や半角数字等で構成されたの長い文字列データinsert時のtoo long keyの回避策について" on Fri, 3 May 2013 17:44:40 +0900, Naoya Murakami <visio****@gmail*****> wrote: > 現在、MyISAMで構築したテーブルをラッパーモードのmroongaに変更して > フルテキストインデックスを構築しようとしています。 > > disable keysの後、mroongaに変更し、その後、enable keysした場合に、 > 以下のメッセージで失敗するテーブルが多数発生しました。 > > ERROR 1026 (HY000) at line 1: too long key: (11626) > > いくつかwebで検索すると、記号や半角数字等で構成されたの長い文字列データをINSERTする際に、エラーが発生する。 > との記事がいくつか見つかりました。 > > そこで、以下のようなレコードを1行insertした場合にも同様に、too long key: (11626)となりました。 > > このようなレコードをもつ場合、mroongaを利用することはできないのでしょうか? いえ、利用できます。 > なんらかの回避方法があれば、ご教示願います。 http://mroonga.org/ja/docs/userguide/wrapper.html#how-to-specify-the-parser-for-full-text-search ここにあるようにparserを指定します。 指定するparserはTokenBigramSplitSymbolAlphaDigitにしてくださ い。たとえば、以下のようにします。 FULLTEXT INDEX (content) COMMENT 'parser "TokenBigramSplitSymbolAlphaDigit"' これで、例のように半角英数字のみで構成された場合もエラーにな らないはずです。 -- 須藤 功平 <kou****@clear*****> 株式会社クリアコード <http://www.clear-code.com/> (03-6231-7270) groongaサポート: http://groonga.org/ja/support/ パッチ採用はじめました: http://www.clear-code.com/recruitment/ コミットへのコメントサービスはじめました: http://www.clear-code.com/services/commit-comment.html