mysql> SELECT * FROM mroonga.t1;
+-----+-------------------------------+
| num | val |
+-----+-------------------------------+
| 1 | ザクとおでかけ |
| 2 | 水陸両用ザクcoming soon |
| 3 | 秋冬兼用ザク入荷 |
| 4 | ザク |
+-----+-------------------------------+
4 rows in set (0.00 sec)
mysql> SELECT * FROM mroonga.t1 USE INDEX (trigram) WHERE match(val) against ('*D+ ザク' IN BOOLEAN MODE);
+-----+-------------------------------+
| num | val |
+-----+-------------------------------+
| 2 | 水陸両用ザクcoming soon |
| 4 | ザク |
+-----+-------------------------------+
2 rows in set (0.00 sec)
- "*ザク"で終わっているトークンだけがマッチする。
mysql> SELECT * FROM mroonga.t1 USE INDEX (trigram) WHERE match(val) against ('*D+ ザ' IN BOOLEAN MODE);
+-----+-------------------------------+
| num | val |
+-----+-------------------------------+
| 1 | ザクとおでかけ |
| 2 | 水陸両用ザクcoming soon |
| 3 | 秋冬兼用ザク入荷 |
| 4 | ザク |
+-----+-------------------------------+
4 rows in set (0.01 sec)
- 1文字の場合は前方一致検索に書き換えてくれているぽい。
mysql> SELECT * FROM mroonga.t1 USE INDEX (trigram) WHERE match(val) against ('*D+ ザク*' IN BOOLEAN MODE);
+-----+-------------------------------+
| num | val |
+-----+-------------------------------+
| 2 | 水陸両用ザクcoming soon |
+-----+-------------------------------+
1 row in set (0.01 sec)