[Db] full text search e soglia del 50%

Marcello Vezzelli marcello a vezz.it
Mar 16 Ott 2007 11:27:00 CEST


Ciao a tutti,
sto lavorando su un database con le tabelle in formato myISAM e con 
alcuni indici full text.

Come specificato qui

http://dev.mysql.com/doc/refman/5.1/en/fulltext-search.html

The 50% threshold has a significant implication when you first try 
full-text searching to see how it works: If you create a table and 
insert only one or two rows of text into it, every word in the text 
occurs in at least 50% of the rows. As a result, no search returns any 
results. Be sure to insert at least three rows, and preferably many 
more. Users who need to bypass the 50% limitation can use the boolean 
search mode; see Section 11.8.1, “Boolean Full-Text Searches” 
<fulltext-boolean.html>.

In soldoni, se cerco una parola che è presente in più del 50% dei record 
non mi viene ritornato nessun risultato.
Mi va anche bene, però vorrei sapere QUANDO entra in funzione questa 
cosa della soglia per poter dire all'utente che la sua ricerca è troppo 
generica.

L'esempio che fanno è questo, ma non c'è differenza tra queste due query...

mysql> *|SELECT * FROM articles|* -> *|WHERE MATCH (title,body)|* -> 
*|AGAINST ('MySQL' IN NATURAL LANGUAGE MODE);|* Empty set (0.00 sec)
mysql> *|SELECT * FROM articles|* -> *|WHERE MATCH (title,body)|* -> 
*|AGAINST ('rfiewrnf' IN NATURAL LANGUAGE MODE);|* Empty set (0.00 sec)

La prima non ritorna risultati per via della soglia, la seconda invece 
non ritorna risultati perché non ce ne sono.

Qualcuno sa come ricavare questa informazione?

Saluti
Marcello





Maggiori informazioni sulla lista Db