Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    ricerca avanzata php+mysql

    Ciao ragazzi,
    ho guardato nelle "pillole" ma non mi è sembrato di vederne traccia.
    Come si fa a fare un motore di ricerca avanzato (ossia tipo quello di google per capirci, che accetti parole non necessariamente vicine tra loro nel testo da consultare) che ricerchi tra le frasi di un campo o di un record di mysql?
    Credo potrebbe interessare a molti (a me sicuramente! )
    ciaooo

  2. #2

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

  3. #3
    dunque, vediamo se ho capito:
    se devo cercare la parola 'parola1' nel campo 'campo1' della tabella 'tabella1', la sintassi sarebbe:

    SELECT * FROM tabella1 WHERE MATCH campo1 AGAINST ('parola1');

    ho provato a fare così e mi da l'errore:
    "Can't find FULLTEXT index matching the column list"

    Leggendo dal link che mi hai indicato vedo che "bisogna creare un FULLTEXT INDEX", ho quindi provato a farlo con la sintassi:

    $query="CREATE FULLTEXT INDEX indice ON $tabella (indice_colonna)";
    mysql_query ($query) or die (mysql_error());

    ma mi da l'errore "Can't create a table" ( ?)

    Onestamente sono in alto mare . Inoltre la sintassi:
    SELECT * FROM tabella1 WHERE MATCH campo1 AGAINST ('parola1');
    quando funzionerà varrà per 1 parola ('parola1') ma se di parole ne ho 2? Devo fare:
    SELECT * FROM tabella1 WHERE MATCH campo1 AGAINST ('parola1 parola2');
    ?
    Ma, un motore di ricerca non può limitare il numero delle parole da ricercare.. quindi avendone un numero non conosciuto a priori.. cosa si fa?

    Forse sarebbe utile una "pillolina" in questo bel forum..

  4. #4
    Un indice lo crei con ALTER TABLE quando la tabella gia' esiste.

    ALTER TABLE tabella ADD FULLTEXT (campo)

    naturalmente lavora solo con le MyIsam ....

    Se crei piu' campi associati allo stesso indice full-text questi devono essere elencati tutti e nello stesso ordine nel MATCH.


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

  5. #5
    MyIsam?
    Scusa, per me è arabo. Sarebbe un db diverso dal MySql (che io ho)?

  6. #6
    Originariamente inviato da IGS
    MyIsam?
    Scusa, per me è arabo. Sarebbe un db diverso dal MySql (che io ho)?
    :master:

    http://dev.mysql.com/doc/mysql/en/storage-engines.html


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

  7. #7
    wow, mi sa che non ne esco. Pensavo ad una cosa molto più semplice per realizzare un motore di ricerca..

  8. #8
    Ma se io facessi una ricerca avanzata con match e against ma per le parole da tre e due caratteri usassi %like% secondo voi appesantirei troppo il server??

    Ma i condizionali e i congiuntivi li ho beccati tutti :master:
    MiServe di Santino Bivacqua
    PHP/Ruby/Node.js Developer
    www.miserve.com

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    460
    There are 10 types of people in the world - those who understand binary and those who don't.

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 © 2024 vBulletin Solutions, Inc. All rights reserved.