On Tue, 2 Jul 2002, Erlend Hopsø Strømsvik wrote: > Download the 4.0.2 source and compile it. > Things seem to work a lot better with the 4.0.2. And it won't crash with > special combinations of words :)
Hi, Some things with BOOLEAN MODE seem still broken. Especially the '*' jokers. I have 4.0.2 taken from the source tree yesterday. I'm querying against a table with 14579 documents containing 187621564 bytes of data and a fulltext index. Table structure is: CREATE TABLE `plaintext` ( `id` int(11) NOT NULL auto_increment, `doc` varchar(16) NOT NULL default '', `code` int(10) unsigned NOT NULL default '0', `part` tinyint(4) NOT NULL default '0', `bgetxt` text, PRIMARY KEY (`id`), KEY `doc` (`doc`), KEY `code` (`code`), FULLTEXT KEY `bgetxt` (`bgetxt`) ) TYPE=MyISAM Bug example: select doc from plaintext \ where match(bgetxt) against ('integrität'); yields: 171 rows in set (0.02 sec) and: SELECT doc FROM plaintext \ WHERE MATCH(BGETXT) AGAINST ('integrität adäquanz'); yields: 198 rows in set (0.02 sec) 6 of these rows contain both words: SELECT doc FROM plaintext \ WHERE MATCH(BGETXT) AGAINST ('+integrität +adäquanz' IN BOOLEAN MODE); yields: +-----------+ | doc | +-----------+ | 112 V 30 | | 115 V 133 | | 117 V 359 | | 117 V 369 | | 118 V 286 | | 119 V 335 | +-----------+ 6 rows in set (0.01 sec) but now look at this: There are lots of possible endings for my search words: integrität integritätsschaden adäquat adäquanz adäquate ... (many more) SELECT doc FROM plaintext \ WHERE MATCH (bgetxt) AGAINST ('integr*' IN BOOLEAN MODE); gives: 997 rows in set (0.11 sec) this looks is still good! Many additional hits are found. Therefore I do: SELECT doc FROM plaintext \ WHERE MATCH (bgetxt) AGAINST ('integr* adäqu*' IN BOOLEAN MODE); and I get: +----------+ | doc | +----------+ | 117 V 71 | +----------+ 1 row in set (2.46 sec) The text which has been found contains text beginning with: ------------<quote>------------------ 10. Urteil vom 11. Januar 1991 i.S. X gegen Bundesamt für Militärversicherung und Versicherungsgericht des Kantons Solothurn Regeste Art. 23 Abs. 1 und Art. 25 Abs. 1 MVG: Bemessung des Integritätsschadens und Beginn der Integritätsrente. - Bemessung des Integritätsschadens (Zusammenfassung der Rechtsprechung; Erw. 3a). - Die Beeinträchtigung der Integrität bemisst sich an den Folgen, welche die geschädigte Gesundheit auf primäre Lebensfunktionen hat (Erw. 3a/bb/aaa). - Der Integritätsschadensgrad kann 60% übersteigen, richtet sich jedoch weder direkt noch analogieweise nach den Ansätzen gemäss Anhang 3 zur UVV (Bestätigung der Rechtsprechung; Erw. 3c/aa). - Bemessung des Integritätsschadens bei mehreren körperlichen <snip> -------------<unquote>------------------- Conclusion: combinations of 2 words with asterisk joker IN BOOLEAN MODE do not work. Thomas Spahni -- sql, query --------------------------------------------------------------------- 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