| Bug #93924 | Fulltext search using words with apostrophe (') does not work on INNODB tables | ||
|---|---|---|---|
| Submitted: | 14 Jan 2019 17:44 | Modified: | 14 Jan 2019 21:53 |
| Reporter: | Greg Allen | Email Updates: | |
| Status: | Verified | Impact on me: | |
| Category: | MySQL Server: FULLTEXT search | Severity: | S3 (Non-critical) |
| Version: | 5.6/5.7/8.0 | OS: | Any |
| Assigned to: | CPU Architecture: | Any | |
[14 Jan 2019 17:44]
Greg Allen
[14 Jan 2019 20:05]
MySQL Verification Team
Thank you for the bug report.
[14 Jan 2019 21:53]
Greg Allen
Here's another example.
DROP TABLE IF EXISTS catalog;
CREATE TABLE `catalog` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`name` text NOT NULL,
PRIMARY KEY (`id`),
FULLTEXT KEY `name_ftx` (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO catalog(`name`) VALUES
('A teacher\'s and textbook writers handbook on Japan'),
('A teacher\'s handbook in health and science for grade III'),
('A teacher may pass out a handbook');
SELECT * FROM catalog where match (name) against ('+teacher\'s +handbook' IN BOOLEAN MODE);
SELECT * FROM catalog where match (name) against ('+teacher +handbook' IN BOOLEAN MODE);
In both queries all three records are returned. I would expect the first query to return the first two records and the second query to return the last.
To me it seems as though the apostrophe is acting like a word break. And I think this is why it appears the example from https://bugs.mysql.com/bug.php?id=69932 passes.
