Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    ordinare risultati ricerca per rilevanza

    Sto cercando di relizzare un motore di ricerca per testi memorizzati su db mysql senza sfruttare, perà, la ricerca fulltext caratteristica di questo db. Uso invece il metodo LIKE per intenderci. Adesso però vorrei che i risultati fossero presentati secondo la loro rilevanza. Ad esempio se inserisco tre parole chiave nel campo text di un form vorrei che prima venissero elencati i risultati con tutte e tre le parole,se ce ne sono, poi tutti quelli con due parole, a seguire quelli con una sola parola. E' possibile farlo anche senza la ricerca fulltext che ha questa funzione di default?
    Grazie

  2. #2
    perché non vuoi usare fulltext che è un metodo ottimizzato per farlo?

  3. #3
    Perché ho letto che questo sistema ha delle limitazioni. Ad esempio nella ricerca fulltext vengono ignorate le parole che contengano meno di quattro caratteri e non vengono reperiti risultati che contengano parole presenti in più del 50 dei records. Oltre che vengono eliminate anche altre parole di uso comune (vado un po' a memoria ma è quanto viene indicato nel sito di mysql). Serve anche il motore mysiam (non so se tutti i server lo prevedano).
    In effetti avrei bisogno di un consiglio a riguardo perché anch'io sono indecisa sul da farsi. Soprattutto perché la mia ricerca avviene su 15.000 campi testo (abstract di documenti originali) e tempo che con LIKE potrebbe essere più lenta. Cosa mi consigli?

  4. #4

  5. #5
    Originariamente inviato da vicky
    Perché ho letto che questo sistema ha delle limitazioni. Ad esempio nella ricerca fulltext vengono ignorate le parole che contengano meno di quattro caratteri e non vengono reperiti risultati che contengano parole presenti in più del 50 dei records. Oltre che vengono eliminate anche altre parole di uso comune (vado un po' a memoria ma è quanto viene indicato nel sito di mysql). Serve anche il motore mysiam (non so se tutti i server lo prevedano).
    In effetti avrei bisogno di un consiglio a riguardo perché anch'io sono indecisa sul da farsi. Soprattutto perché la mia ricerca avviene su 15.000 campi testo (abstract di documenti originali) e tempo che con LIKE potrebbe essere più lenta. Cosa mi consigli?
    ti consiglio di usare fulltext e scrivere le limitazioni del sistema nell'interfaccia di ricerca

    del resto se sono abstract medici sul viagra e cercano la parola viagra tantovale che si vadano a leggere tutti gli articoli sfogliando le categorie

    questo solo per dire che mi sembrano limitazioni giuste, l'alternativa è crearti un campo apposito nel database con i tag di ricerca che potresti richiedere in fase di inserimento o estrapolare dal testo, anche in questo caso però devi certamente escludere le parole corte e quelle + usate altrimenti le ricerche durano un millennio
    come vedi però torni a realizzare un piccolo sistema come quello perfettamente implementato da mysql quindi io non starei ad impazzire, usa quello
    ciao

  6. #6
    Ho una domanda che FORSE riguarda questa discussione.

    Io vorrei fare una query a mysql dove una oppure un'altra condizione sono valide. Nei risultati però vorrei fossero elencati per primi i risultati con maggiore rilevanza.

    Tipo se cerco una ragazza che ci stà O che sia carina, vorrei trovare uno o l'altro risultato ma naturalmente mi interesserebbero di più i risultati dove entrambe le condizioni sono valide!

    Come si può esprimere questo concetto semplice in una query semplice di mysql?

    grazie e scusate le divagazioni...
    Agenzia di product placement
    Agenzia viaggi last minute
    Compro dominio settore turismo di almeno 3 anni, in ODP, con pr >= 4
    Cerco consigli x hoster italiani e sistemi cms seo friendly, accessibili

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2002
    Messaggi
    332
    qual'è il codice sql????

  8. #8
    mha il codice che ho provato a scrivere io è molto semplice ma appunto non ordina i risultati secondo un criterio di rilevanza....

    select * from tabella where tipa = 'bella' OR carattere = 'simpatica'

    grazie
    Agenzia di product placement
    Agenzia viaggi last minute
    Compro dominio settore turismo di almeno 3 anni, in ODP, con pr >= 4
    Cerco consigli x hoster italiani e sistemi cms seo friendly, accessibili

  9. #9
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    codice:
    select *,(
    if(tipa='bella',2,0) +  
    if(carattere='simpatica',1,0)) as punteggio   
    from tabella where tipa = 'bella' or carattere = 'simpatica'
    order by punteggio desc

  10. #10
    bello!
    dovrei essere in grado di capirlo ma non lo sono :-|
    se aggiungo più criteri funziona lo stesso?

    grazie
    Agenzia di product placement
    Agenzia viaggi last minute
    Compro dominio settore turismo di almeno 3 anni, in ODP, con pr >= 4
    Cerco consigli x hoster italiani e sistemi cms seo friendly, accessibili

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.