masahiro.furuta
furut****@s-gw*****
2013年 4月 3日 (水) 17:44:19 JST
初めて投稿します。古田と申します。 よろしくお願いします。 mroonga使用時のCOUNT値について、期待と異なる動作を確認しましたので報告します。 ====================================== mysql> CREATE DATABASE test130402; Query OK, 1 row affected (0.00 sec) mysql> USE test130402; Database changed mysql> CREATE TABLE `test` (id INTEGER AUTO_INCREMENT, `str1` varchar(255), `str2` text, PRIMARY KEY (`id`), FULLTEXT KEY `test_str1` (`str1`), FULLTEXT KEY `test_str2` (`str2`) ) ENGINE=mroonga DEFAULT CHARSET=utf8 COMMENT='ENGINE "InnoDB"'; Query OK, 0 rows affected, 2 warnings (0.03 sec) mysql> INSERT INTO test (str1,str2) VALUES ("山田","東京"),("山田","京都"),("佐藤","東京"); Query OK, 3 rows affected (0.02 sec) Records: 3 Duplicates: 0 Warnings: 0 mysql> SELECT * FROM test; +----+--------+--------+ | id | str1 | str2 | +----+--------+--------+ | 1 | 山田 | 東京 | | 2 | 山田 | 京都 | | 3 | 佐藤 | 東京 | +----+--------+--------+ 3 rows in set (0.00 sec) mysql> SELECT count(*) FROM `test` WHERE (MATCH(str1) AGAINST (' +山田' IN BOOLEAN MODE) AND MATCH(str2) AGAINST (' +東京' IN BOOLEAN MODE)); +----------+ | count(*) | +----------+ | 2 | +----------+ 1 row in set (0.00 sec) mysql> SELECT * FROM `test` WHERE (MATCH(str1) AGAINST (' +山田' IN BOOLEAN MODE) AND MATCH(str2) AGAINST (' +東京' IN BOOLEAN MODE)); +----+--------+--------+ | id | str1 | str2 | +----+--------+--------+ | 1 | 山田 | 東京 | +----+--------+--------+ 1 row in set (0.00 sec) ====================================== 上記CREATE TABLEでWarningが2個出てますが、うまく対処できず、 また、今回の事象とは直接関係ないと思われたので、すいませんがそのままになってます。 ============================= mysql> show warnings; +---------+------+-------------------------------------------------------------------------------------------------------------------------------------------------------+ | Level | Code | Message | +---------+------+-------------------------------------------------------------------------------------------------------------------------------------------------------+ | Warning | 138 | NormalizerMySQLGeneralCI normalizer isn't found for utf8_general_ci. Install groonga-normalizer-mysql normalizer. NormalizerAuto is used as fallback. | | Warning | 138 | NormalizerMySQLGeneralCI normalizer isn't found for utf8_general_ci. Install groonga-normalizer-mysql normalizer. NormalizerAuto is used as fallback. | +---------+------+-------------------------------------------------------------------------------------------------------------------------------------------------------+ 2 rows in set (0.00 sec) ============================= また、以下に似た現象があったのでquery_cache_sizeを0にしてみましたが、同じく再現します。 http://sourceforge.jp/projects/groonga/lists/archive/dev/2012-June/000924.html 環境は以下です。 * Fedora 17 ( VirtualMachine 4.2.4上で動作 ) * groonga 3.0.0 * mroonga 3.0.1 ( ラッパーモードで利用しています ) * MySQL 5.6.10 以上です。 よろしくお願いします。