Jefferey, Tuesday, September 10, 2002, 8:19:35 AM, you wrote: JD> I'm just getting started with FULLTEXT indexes for a JD> table and am seeing some very off-base results. While JD> it may be something I'm doing, I didn't see anything JD> in the online manual to indicate why these results JD> would be so bizarre.
JD> Here is a test table I've created: JD> create table ft_test JD> (id smallint unsigned not null auto_increment, JD> note_text text not null, JD> fulltext (note_text), JD> primary key (id)); JD> Once this table is created, I insert a few rows to JD> test with: JD> insert into ft_test values JD> (null, 'this is the first row'); JD> insert into ft_test values JD> (null, 'this is the second row with more text'); JD> insert into ft_test values JD> (null, 'this is a fourth row with different text'); JD> insert into ft_test values JD> (null, 'this is a fifth row for not another JD> variation'); JD> insert into ft_test values JD> (null, 'and here is a sixth row that should be JD> sufficient'); JD> Ok, so far so good (yea, I know I forgot a "third" JD> row)... but here's where it gets weird. All of the JD> words I search on below appear in only ONE of the JD> above rows and all of them are four or more JD> characters. Despite this, some of them return a JD> correct result and other rows, which clearly have a JD> matching word, return an empty set. JD> The word "different" = empty set?! JD> mysql> select id from ft_test where match (note_text) JD> against ('different'); JD> Empty set (0.00 sec) JD> The word "sufficient" = 1 row JD> mysql> select id from ft_test where match (note_text) JD> against ('sufficient'); JD> +----+ JD> | id | JD> +----+ JD> | 5 | JD> +----+ JD> 1 row in set (0.00 sec) JD> The word "first" = empty set?! JD> mysql> select id from ft_test where match (note_text) JD> against ('first'); JD> Empty set (0.00 sec) JD> The word "fourth" = 1 row JD> mysql> select id from ft_test where match (note_text) JD> against ('fourth'); JD> +----+ JD> | id | JD> +----+ JD> | 3 | JD> +----+ JD> 1 row in set (0.00 sec) JD> The word "another" = empty set? JD> mysql> select id from ft_test where match (note_text) JD> against ('another'); JD> Empty set (0.00 sec) JD> Note that this is MySQL 3.23.49-nt, running on WinXP JD> Pro. I've only been using MySQL for a couple months JD> now and this is my first foray into the world of JD> FULLTEXT indexes. I found the problem on a much more JD> complex table query, but the above demonstrates the JD> issue in a more simple way. If you need more JD> information, or if there is some configuration option JD> I've overlooked, please let me know. JD> I appreciate any help I can get with this... while I JD> could probably use LOWER(note_text) LIKE '%<term>%' JD> for this purpose, it seems like this is what FULLTEXT JD> was made to do! Jefferey, "another", "first", "different" are stop words. You can find list of stop words in the ft_static.c file in the source distribution. -- For technical support contracts, goto https://order.mysql.com/?ref=ensita This email is sponsored by Ensita.net http://www.ensita.net/ __ ___ ___ ____ __ / |/ /_ __/ __/ __ \/ / Egor Egorov / /|_/ / // /\ \/ /_/ / /__ [EMAIL PROTECTED] /_/ /_/\_, /___/\___\_\___/ MySQL AB / Ensita.net <___/ www.mysql.com --------------------------------------------------------------------- Before posting, please check: http://www.mysql.com/manual.php (the manual) http://lists.mysql.com/ (the list archive) To request this thread, e-mail <[EMAIL PROTECTED]> To unsubscribe, e-mail <[EMAIL PROTECTED]> Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php