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

    affinamento query in motore di ricerca

    Ciao a tutti, cercherò di essere il più chiaro possibile ad esporre il mio problema.

    Ho sviluppato un motore di ricerca che gira su MySQL dove riesco ad estrarre correttamente tutti i dati in base alla ricerca testuale.

    Il mio problema ora è ordinare i risultati in base al tipo di ricerca effettuata.

    Per esempio:

    Supponiamo di avere questi tre articoli:
    TRENINO GIOSTRA
    TRENINO FIERA INDUSTRIALE
    TUTTI IN FIERA

    Supponiamo di effettuare una ricerca di questo tipo: "trenino fiera industriale"

    Questa è la query che costruisco:

    codice:
    SELECT * FROM articoli WHERE
    (codiceinterno LIKE '%trenino%' OR
     titolo LIKE '%trenino%' OR
     descrizione LIKE '%trenino%' OR
     tags LIKE '%trenino%') OR 
    (codiceinterno LIKE '%parco%' OR
     titolo LIKE '%parco%' OR
     descrizione LIKE '%parco%' OR
     tags LIKE '%parco%') OR
    (codiceinterno LIKE '%industriale%' OR
     titolo LIKE '%industriale%' OR
     descrizione LIKE '%industriale%' OR
     tags LIKE '%industriale%')
    Tutti e tre gli articoli vengono correttamente caricati, ma io vorrei vedere come primo articolo TRENINO FIERA INDUSTRIALE perché è quello che rispecchia di più il tipo di ricerca che ho fatto.

    Grazie per l'aiuto
    <i>I sogni passano se uno li fa passare</i>

  2. #2
    Moderatore di Annunci siti web L'avatar di Cesar
    Registrato dal
    Dec 2001
    Messaggi
    3,446
    Non ti conveniva usare la ricerca full text?

  3. #3
    Mi sento scemo.
    Ho appena implementato la ricerca fulltext e ho ottenuto ciò che volevo...

    Posto cos'ho fatto se può servire a qualcuno:

    Ho creato l'indice fulltext con i campi oggetto di ricerca:
    ALTER TABLE articoli
    ADD FULLTEXT FULLTXT (titolo, descrizione, codiceinterno, tags)

    E questa è la select che estrae i dati per affinità:
    SELECT *, MATCH (titolo,descrizione,codiceinterno,tags)
    AGAINST ('trenino fiera industriale')
    FROM articoli
    WHERE MATCH (titolo,descrizione,codiceinterno,tags) AGAINST ('trenino fiera industriale')

    Grazie per l'illuminazione.
    <i>I sogni passano se uno li fa passare</i>

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.