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

Reply via email to