keigo ito
keigo****@gmail*****
2013年 3月 17日 (日) 23:46:37 JST
斯波さま: mroonga 3.01 での検証は後日実施する予定ですが(をやるつもりでしたが時間切れとなったため)、まずは以下の環境での再現手順をお知らせさせていただきます。 ■ 環境 groonga-libs-2.0.8-0 groonga-tokenizer-mecab-2.0.8-0 mecab-0.994-1 mecab-ipadic-2.7.0.20070801-5.1 MySQL-client-5.5.27-1.rhel5 mysql-mroonga-2.06-0 MySQL-server-5.5.27-1.rhel5 MySQL-shared-5.5.28-1.rhel5 # いずれも groonga yum repositoryよりインストール ■ 再現手順 [1] 添付DDLファイルを実行 $ cat /var/tmp/news-ddl.sql | mysql -uroot [2] DownloadしたデータファイルをMySQLにロード mysql> LOAD DATA INFILE '/var/tmp/news-data.txt' INTO TABLE article; [3] 中身のレコードを確認 $ mysql -u root mysql> USE news; mysql> SELECT * FROM article LIMIT 1 \G *************************** 1. row *************************** id: article-id-001 date: 2013-03-20 08:00:00 title: 吾輩は猫である body: 『吾輩は猫である』(わがはいはねこである)は、夏目漱石の長編小説。…… search_text: 『吾輩は猫である』(わがはいはねこである)は、夏目漱石の長編小説。…… created: 0000-00-00 00:00:00 1 row in set (0.00 sec) # 999件、(PRIMARY KEY `id` を除いて)全て同じデータの行 [4] カラム `search_text` で、全文検索が有効であることを確認。 mysql> SELECT id, title FROM article WHERE MATCH(search_text) AGAINST('夏目漱石'); → 999件がヒットする。 [5] (再現) DISABLE KEYS したあと、 ENABLE KEYS するとWarningが発生。 mysql> ALTER TABLE article DISABLE KEYS; Query OK, 0 rows affected (0.00 sec) mysql> ALTER TABLE article ENABLE KEYS; Query OK, 0 rows affected, 1 warning (0.01 sec) mysql> SHOW WARNINGS; +-------+------+-------------------------------------------------+ | Level | Code | Message | +-------+------+-------------------------------------------------+ | Error | 1026 | failed to add a new record into groonga: key=<> | +-------+------+-------------------------------------------------+ 1 row in set (0.00 sec) 〜 以降、[4] のクエリを実行しても、1件しかHitしない。(999件Hitすべきところ)〜 2013年3月12日 22:52 kentoku <kento****@gmail*****>: > 斯波です。 > > こちらで挙動を確認させて頂いたのですが、現在のところ > 現象が再現できておりません。 > > お手数ではございますが、最新のmroonga(3.0.1)で、 > ご確認いただくことはできますでしょうか? > > どうぞ、よろしくお願いいたします。 > > > 2013年3月10日 10:36 keigo ito <keigo****@gmail*****>: > > # MLに届いているか不安でしたので再送させて頂きます。 > > 多重投稿となりましたら申し訳ございません。 > > > > > > 初めて投稿します。 > > K5と申します。 > > 以下、FAQでしたら申し訳ございません。 > > > > mroonga 2.0.6 をラッパーモードで利用しています。 > > 後述の[0] の通り、ujisのテーブルに UTF-8のカラム、"search_text" を作成し、 > > そのカラムにFULLTEXT INDEX "search_text" を作成しています。 > > > > ふとしたことで、 > > ALTER TABLE `article` DISABLE KEYS > > にて、INDEXを無効にしてしまったところ、 > > > > ALTER TABLE `article` ENABLE KEYS > > すると、以下のようなエラーが表示され、INDEXを有効にできません。 > > > > ERROR 1026 (HY000): failed to add a new record into groonga: key=<> > > > > > > そこで、INDEXの削除・再作成を試みました。 > > ALTER TABLE article DROP INDEX `search_text`; > > ALTER TABLE article ADD FULLTEXT INDEX `search_text` (`search_text`); > > > > が、やはり同じエラーが表示されます。 > > > > ERROR 1026 (HY000): failed to add a new record into groonga: key=<> > > > > > > 以降、全文検索ができない状態になっています。 > > 復旧させる方法がございましたら、是非ご教授ください > > > > よろしくお願いいたします。 > > > > ---------------------- > > > > [0] DDL > > > > CREATE TABLE `article` ( > > `id` varchar(128) NOT NULL, > > `date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', > > `title` text NOT NULL, > > `body` text NOT NULL, > > `search_text` text CHARACTER SET utf8 COLLATE utf8_unicode_ci, > > `created` timestamp NULL DEFAULT '0000-00-00 00:00:00', > > PRIMARY KEY (`id`), > > FULLTEXT KEY `search_text` (`search_text`) > > ) ENGINE=mroonga DEFAULT CHARSET=ujis COMMENT='ENGINE "InnoDB"' > > > > > > [1] SHOW VARIABLES LIKE 'mroonga_%'; の結果 > > mroonga_database_path_prefix > > mroonga_default_parser TokenMecab > > mroonga_default_wrapper_engine > > mroonga_dry_write OFF > > mroonga_enable_optimization ON > > mroonga_libgroonga_version 2.0.6 > > mroonga_log_file groonga.log > > mroonga_log_level NONE > > mroonga_match_escalation_threshold 0 > > mroonga_version 2.06 > > _______________________________________________ > > groonga-dev mailing list > > groon****@lists***** > > http://lists.sourceforge.jp/mailman/listinfo/groonga-dev > > _______________________________________________ > groonga-dev mailing list > groon****@lists***** > http://lists.sourceforge.jp/mailman/listinfo/groonga-dev >