河野 隆志
takas****@gmo-m*****
2012年 3月 27日 (火) 13:19:34 JST
河野と申します。
mroonga 2.0にてバグ?っぽい挙動を見つけたので報告します。
SELECT COUNT(*) FROM table WHERE MATCH(column) AGAINST('+D keyword')
とした場合、正しく数値が取得できません。
SELECT COUNT(column) FROM table WHERE MATCH(column) AGAINST('+D keyword')
とすると数値が取得できます。
> root @ localhost:test_db>SELECT COUNT(*) AS count FROM table WHERE MATCH (text) AGAINST ('*D+ keyword' IN BOOLEAN MODE);
> +-------+
> | count |
> +-------+
> | 0 |
> +-------+
> 1 row in set (0.16 sec)
>
> root @ localhost:test_db>SELECT COUNT(text) AS count FROM table WHERE MATCH (text) AGAINST ('*D+ keyword' IN BOOLEAN MODE);
> +--------+
> | count |
> +--------+
> | 383961 |
> +--------+
> 1 row in set (0.80 sec)
>
> root @ localhost:test_db>SELECT COUNT(*) AS count FROM table WHERE MATCH (text) AGAINST ('*D+ keyword' IN BOOLEAN MODE);
> +-------+
> | count |
> +-------+
> | 0 |
> +-------+
> 1 row in set (0.18 sec)
テーブル定義は以下
> CREATE TABLE `search_texts` (
> `id` bigint(20) NOT NULL,
> `text` text,
> `cdate` datetime NOT NULL,
> `mdate` datetime NOT NULL,
> PRIMARY KEY (`id`),
> KEY `idx_search_texts` (`cdate`),
> FULLTEXT KEY `fu_search_texts` (`text`)
> ) ENGINE=mroonga DEFAULT CHARSET=utf8
システムは
CentOS5.7
MySQL 5.5.21
mroonga-2.01
gronga-2.0.0
以上、宜しくお願い致します。
--
河野 隆志 <takas****@gmo-m*****>