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
>