Visualizzazione dei risultati da 1 a 5 su 5

Discussione: [sql] Fulltext - match

  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    957

    [sql] Fulltext - match

    Ciao,
    ho un problema con la ricerca con fulltext:

    Ho creato questa tabella:
    codice:
    CREATE TABLE `s_prof` (
     `id` int(5) NOT NULL auto_increment,
      `cognome` varchar(40) NOT NULL default '',
      `nome` varchar(40) NOT NULL default '',)
    ENGINE=MyISAM DEFAULT CHARSET=latin1
    Ho creato un chiave FULLTEXT con (nome,cognome)
    E ho inserito questo valore:

    codice:
     INSERT INTO `s_prof` VALUES ('1', 'Rossi', 'Oscar')
    E se richiamo questa query:

    codice:
    SELECT * FROM s_prof WHERE MATCH(nome,cognome) AGAINST('oscar')
    Non mi da nessun risultato... perchè?

    Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    957
    ho provato anche con IN BOOLEAN MODE, migliore, ma se scrivo "osca*" non trova nulla

  3. #3
    Prova a inserire ancora 3 o 4 record, alcuni simili altri diversi. La sintassi è giusta ma mi par di ricordare che la ricerca fulltext funziona a partire da 3 record in su.

    Such a technique works best with large collections (in fact, it was carefully tuned this way). For very small tables, word distribution does not adequately reflect their semantic value, and this model may sometimes produce bizarre results. For example, although the word “MySQL” is present in every row of the articles table, a search for the word produces no results:

    mysql> SELECT * FROM articles
    -> WHERE MATCH (title,body) AGAINST ('MySQL');
    Empty set (0.00 sec)

    The search result is empty because the word “MySQL” is present in at least 50% of the rows. As such, it is effectively treated as a stopword. For large datasets, this is the most desirable behavior — a natural language query should not return every second row from a 1GB table. For small datasets, it may be less desirable.
    da http://dev.mysql.com/doc/refman/4.1/...xt-search.html

    P.s. ma che bisogno c'è di FULLTEXT per un campo che contiene solo un cognome? Non basta un indice normale?

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    957
    si si, ma io l'ho fatta semplice, nel senso che oltre a nome cognome ecc ci sarò anche descrizione dati... in TEXT quindi la cosa diventa sensata.
    Cmq nn mi funziona neanche con + d 3 record

    Tra l'altro non capisco perchè nn accetta i campi TEXT senza specif la dimensione... ma di cosa?

  5. #5
    Tieni presente che se una parola è presente nella maggior parte dei record indicizzati (in più del 50%) questa viene classificata come termine comune (privo di valore semantico) e, di conseguenza, ignorata in fase di ricerca.

    Quindi se proprio vuoi utilizzare pochi record, fa che siano almeno 3 e metti la keyword una sola volta.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.