> >mysql> select Notice_ID from Notices where match (Text) against 
> >('+pollution +control' in boolean mode);
> >Empty set (0.00 sec)
> >
> >mysql> select Notice_ID from Notices where match (Text) against 
> >('"pollution control"' in boolean mode);
> >Empty set (0.02 sec)
> >
> >mysql> select Notice_ID from Notices where Text like '%pollution 
> >control%';
> >+-----------+
> >| Notice_ID |
> >+-----------+
> >|    192090 |
> >+-----------+
> >1 row in set (5.00 sec)
> 
> Your LIKE query is not equivalent to your MATCH AGAINST.  For example, 
> Text containing "pollution controls" would match LIKE '%pollution 
> control%', but would not MATCH AGAINST ('+pollution +control'...).  Have 
> you looked at Text for this row to be sure it contains exactly 
> "pollution" and "control"?

No, it isn't equivalent but it would match less than the AND would,
since it is an exact phrase.  Yes, those words and that exact phrase 
exists multiple times.  It has been confirmed as a bug.

> >mysql> select Notice_ID from Notices where match (Text) against 
> >('+pollution +air' in boolean mode);
> >Empty set (0.03 sec)
> >
> >mysql> select Notice_ID from Notices where match (Text) against ('"air 
> >pollution"' in boolean mode);
> >Empty set (0.00 sec)
> >
> >mysql> select Notice_ID from Notices where Text like '%air pollution%';
> >+-----------+
> >| Notice_ID |
> >+-----------+
> >|    196349 |
> >|    196569 |
> >|    188183 |
> >|    192090 |
> >|    192686 |
> >|    199283 |
> >+-----------+
> >6 rows in set (0.17 sec)
> >
> >(NOTE on the search for air -- my.cnf has ft_min_word_len=3)
> 
> Are you certain that air is indexed?  What does
> 
>   SELECT COUNT(*) FROM Notices WHERE MATCH (Text) AGAINST ('air');
> 
> return?

Just over 6 thousand results.  And it was answered just below, here:

> >All OR searches work perfectly fine, as per:
> >
> >mysql> select count(*) from Notices where match (Text) against ('air 
> >pollution');
> >+----------+
> >| count(*) |
> >+----------+
> >|      100 |
> >+----------+
> >1 row in set (0.03 sec)
> 
> How many do you get with
> 
>   SELECT COUNT(*) FROM Notices WHERE MATCH (Text) AGAINST ('pollution');
> 
> If air isn't indexed, I'd expect 0 hits for 'air' and 100 hits for 
> 'pollution'.
 
17 hits for pollution.

Do you normally talk down to people as if they are too retarted to have
tested the obvious themselves?  This wasn't a complaint or a how-to
question, but a researched and tested bug.  I specifically demonstrated
that the phrases exist and that clearly stated that the OR searches worked.

-- 
Joe Rhett                                                      Chief Geek
[EMAIL PROTECTED]                                      Isite Services, Inc.

-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to