Bug #3964 Not works search with fulltext index
Submitted: 2 Jun 2004 13:25 Modified: 9 Jun 2004 12:41
Reporter: Dainis Polis Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server Severity:S3 (Non-critical)
Version:4.1.2-alpha-nightly-20040523-log OS:Linux (Linux)
Assigned to: Sergei Golubchik CPU Architecture:Any

[2 Jun 2004 13:25] Dainis Polis
Description:
show varibles:  ft_min_word_len = 2

CREATE TABLE `TEST` (
`ID` int(10) unsigned NOT NULL ,
`saturs` char(255) default NULL,
PRIMARY KEY (`ID`),
FULLTEXT KEY `sat` (`saturs`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8

insert into TEST (ID,saturs) values (1, _latin1 'pär par par')
insert into TEST (ID,saturs) values (2, _latin1 'par par par')

select convert(saturs using latin1)     from TEST;

 pär par par
 par par par

select * from TEST where match(saturs) against('par' in boolean mode);
no rows

So why last search  query does not return any rows?

How to repeat:
 
 ft_min_word_len = 2

CREATE TABLE `TEST` (
`ID` int(10) unsigned NOT NULL ,
`saturs` char(255) default NULL,
PRIMARY KEY (`ID`),
FULLTEXT KEY `sat` (`saturs`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8

insert into TEST (ID,saturs) values (1, _latin1 'pär par par')
insert into TEST (ID,saturs) values (2, _latin1 'par par par')

select convert(saturs using latin1)     from TEST

 

select * from TEST where match(saturs) against('par' in boolean mode);
[3 Jun 2004 1:20] Matthew Lord
I could not repeat with 4.1.2.  Please use the new official 4.1.2 release and you should not see the 
problem anymore.
Please do note that if you change any of the ft_ variables you will need to re-create the full text 
indexes.

root@localhost:bugs~> show variables like "ft_min_word_len";
+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| ft_min_word_len | 2     |
+-----------------+-------+
1 row in set (0.00 sec)

root@localhost:bugs~> select * from TEST where match(saturs) against('par' in boolean mode);
+----+-------------+
| ID | saturs      |
+----+-------------+
|  1 | par par par |
|  2 | par par par |
+----+-------------+
2 rows in set (0.00 sec)
[3 Jun 2004 6:54] Dainis Polis
Sorry , but  you do'nt reapeat correctly  :

should insert first row  with value: 'pär par par'
, but not :  'par par par' , there is a difference where apears a bug...
[3 Jun 2004 7:10] Matthew Lord
Hi,

Yes, I noticed the difference in data myself.  I had to change the encoding for my terminal.  It still works 
correctly for me in 4.1.2 with the umlaut.

Were you able to try it out yourself?
[3 Jun 2004 7:22] Dainis Polis
Yes, i did it byself and for me query does not return rows :-(,:-(.
But any way if it works for you, then there is no bug, may be problem is
on wrong installation new Mysql version over older - 4.0.1a.
[4 Jun 2004 7:55] Dainis Polis
I try this with 4.1.2 alpha binary and get this error : 
 
Maybe you forget assign to column saturs charset utf8? 
This  can be important too... 
Make sure that after inserting first row query  
select ord(substring(saturs,2)) from TEST where id = 1 
 
gives  50084  => second character is unicode 2 byte. 
It can bee 50082 too and i get error. looks like if searching 
reaches word %chr(50082)% or %chr(50082)%   ,where searching for %a% , it 
stops.
[9 Jun 2004 12:41] Sergei Golubchik
Thank you for your bug report. This issue has been committed to our
source repository of that product and will be incorporated into the
next release.

If necessary, you can access the source repository and build the latest
available version, including the bugfix, yourself. More information 
about accessing the source trees is available at
    http://www.mysql.com/doc/en/Installing_source_tree.html

Additional info:

fixed in 4.1.3