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
以上です。
よろしくお願いします。