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:
None 
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

[17 Nov 2008 17:26] Devansh Dhutia
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)
[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".