Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it L'avatar di deleted_id_48586
    Registrato dal
    Nov 2002
    Messaggi
    1,732

    [MySQL] problema con indice FULLTEXT

    in una banalissima tabella "visite" con campi:

    id
    titolo
    corpo

    ho associato al campo corpo (mediumtext) un indice per le ricerche FULLTEXT.

    tuttavia quando uso la query

    SELECT corpo FROM visite WHERE MATCH(corpo) AGAINST('parola');

    ho sempre un output di 0 record questo anche usando parole + lunghe di 4 caratteri, minori del 50% dell'intero testo e quasi sicuramente non presenti nella stop-word-list.

  2. #2
    Utente di HTML.it L'avatar di deleted_id_48586
    Registrato dal
    Nov 2002
    Messaggi
    1,732
    SELECT corpo FROM visite WHERE MATCH(corpo) AGAINST('parola' IN BOOLEAN MODE);

    così funziona ma non capisco perchè.

    Se non erro la "modalità booleana" elimina la clausola del 50% ma non è un problema che si poneva con la ricerca che stavo effettuando.

    Proprio non capisco.

  3. #3
    Utente di HTML.it L'avatar di deleted_id_48586
    Registrato dal
    Nov 2002
    Messaggi
    1,732
    up

  4. #4
    Originariamente inviato da Sgurbat
    up
    Ciao,

    se usi la versione 4.1 devi fare attenzione che il collate sia lo stesso sia per la tabella, colonna e connessione. Altrimenti devi usare il boolean mode....

    dai una occhiata al manuale...

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


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5
    Originariamente inviato da piero.mac
    Ciao,

    se usi la versione 4.1 devi fare attenzione che il collate sia lo stesso sia per la tabella, colonna e connessione. Altrimenti devi usare il boolean mode....

    dai una occhiata al manuale...

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

    Azz... non mi risolve:

    Connessione: utf8-general-ci
    Database: utf8-general-ci
    Tabella: utf8-general-ci
    Campi FULLTEXT: utf8-general-ci

    ho i due campi pagTITLE e pagTEXT messi come unico indice FULLTEXT. Ho provato con

    SELECT artID
    FROM `articoli`.`pages`
    WHERE MATCH (
    pagTITLE
    )
    AGAINST (
    'di'
    )

    di è una parola presente sia in pagTITLE che pagTEXT, ho provato anche con altre parole magari che non sono presenti in una delle due ma sempre MySQL mi restituisce 0 righe. IN BOOLEAN MODE non mi ha aiutato... Come posso fare???
    PaTeR
    From Ban to Life

  6. #6
    ok ok ho capito

    Ho aggiunto un'altro record uguale al primo ma la ricerca fallisce lo stesso....
    PaTeR
    From Ban to Life

  7. #7
    Originariamente inviato da PaTeR non PeTeR
    ok ok ho capito

    Ho aggiunto un'altro record uguale al primo ma la ricerca fallisce lo stesso....
    Guarda nelle variabili... ci deve essere un numero minimo di digit per il full text. Non mi pare indicizzi tutto.

    mi pare sia "ft min word len"


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  8. #8
    Sì il min text è 4 (possibile modificarlo ma da risultati inutili....indicizzerebbe anche le congiunzioni) esiste anche una stop words list che racchiude delle parole chiave che vengono omesse nella ricerca... solo mi sembra strano che "parola" possa appartenere a tale lista....

  9. #9
    Originariamente inviato da piero.mac
    Guarda nelle variabili... ci deve essere un numero minimo di digit per il full text. Non mi pare indicizzi tutto.

    mi pare sia "ft min word len"

    come faccio a vederla?

    e poi, scusate la domanda stupida, la stop list è accessibile e modificabile?
    PaTeR
    From Ban to Life

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.