| Bug #40793 | stopwords issue | ||
|---|---|---|---|
| Submitted: | 17 Nov 2008 17:26 | Modified: | 19 Nov 2008 10:04 |
| Reporter: | Devansh Dhutia | Email Updates: | |
| Status: | Not a Bug | Impact on me: | |
| Category: | MySQL Server: FULLTEXT search | Severity: | S3 (Non-critical) |
| Version: | 5.0.51a-3ubuntu5.3 | OS: | Any |
| Assigned to: | CPU Architecture: | Any | |
| Tags: | eliminate, stopwrods | ||
[19 Nov 2008 10:04]
Sveta Smirnova
Thank you for the report. "the" is stopword. Stopwords are ignored when using full-text search even in boolean mode. +(the) is subexpression which evaluates to false, because stopword "the" is ignored, but +the is just part of expression which is ignored, because "the" is stopword. So this is intended and I close the report as "Not a Bug".

Description: I seem to have a problem which I think is a bug with how the fulltext query is parsed using stopwords. In the steps below, I feel that Q1, Q2, and Q3 should yield identical results, however, in the case of Q1, having parantheses around the keyword 'the' seems to provide a different conditional than not having the parantheses. +(the) and +the should not behave differently should they? Q2 and Q3 behave as expected. How to repeat: CREATE TABLE `test` ( `id` int(11) NOT NULL auto_increment, `search` text, `title` varchar(32) default NULL, PRIMARY KEY (`id`), FULLTEXT KEY `search` (`search`) ); insert into test(title, search) values ('test1','test the hello world'); Q1: select title, search from test where (match(search) against (('+(the) +(test)') in boolean mode)); Q2: select title, search from test where (match(search) against (('+the +(test)') in boolean mode)); Q3: select title, search from test where (match(search) against (('+(test)') in boolean mode)); Suggested fix: alter the parsing behavior of +(the)