Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2001
    residenza
    Napoli, Italia
    Messaggi
    1,074

    motore ricerca: risultati non del tutto soddisfacenti

    Ho un motore di ricarca interna, che utilizza questo codice:
    Codice PHP:
    if ($searchterm == "") {
    echo 
    "<p align=\"left\">Please, specify a criteria for search.</p>";
        } else {
            
    $result mysql_query("SELECT *, MATCH(title) AGAINST('$searchterm' IN BOOLEAN MODE) AS tot FROM news WHERE MATCH(title) AGAINST ('$searchterm' IN BOOLEAN MODE) ORDER BY tot ASC"); 
            
    $nr mysql_num_rows($result);
                if (
    $nr!==0) {
    echo 
    "[i]<u>Result where the keyword(s) match the news title</u>[/i]

    "
    ;
    while (
    $row mysql_fetch_array($result)) {
        
    $newsid $row["news_id"];
        
    $titolo $row["title"];
    echo 
    "<a href=\"onefeed.php?feed=" $newsid "\">[b]" $titolo "[/b]</a>
    "
    ;
        }
    } else {
    echo 
    "[i]<u>No result where the keyword(s) match the news title</u>[/i]

    "
    ;
    }
    echo 
    "<hr width=\"100%\" size=\"1\" noshade>";
        
    $result2 mysql_query("SELECT *, MATCH(text) AGAINST('$searchterm' IN BOOLEAN MODE) AS tot FROM news WHERE MATCH(text) AGAINST ('$searchterm' IN BOOLEAN MODE) ORDER BY tot ASC");
            
    $nr2 mysql_num_rows($result2);
                if (
    $nr2!==0) { 
    echo 
    "[i]<u>Result where the keyword(s) match the news text</u>[/i]

    "
    ;
    while (
    $row2 mysql_fetch_array($result2)) {
        
    $newsid $row2["news_id"];
        
    $titolo $row2["title"];
    echo 
    "<a href=\"onefeed.php?feed=" $newsid "\">[b]<font color=\"#CC6699\">" $titolo "</font>[/b]</a>
    "
    ;
        }
    } else {
    echo 
    "[i]<u>No result where the keyword(s) match the news text</u>[/i]

    "
    ;
        }
    }
    echo 
    "<hr width=\"100%\" size=\"1\" noshade>"
    Per funzionare, funziona, però i risultati sono a volte imperfetti. Ovvero, se - ad esempio - faccio una ricerca con la parola chiave PICASSO, se tra i titoli delle news ce n'è uno del tipo PICASSO'S DEMOISELLES D'AVIGNON AT 100 (dove quindi, in virtù del genitivo sassone, la parola PICASSO è seguita da un'apostofo ed un'altra lettera, senza spazi) non mi riconosce più il termine.
    Poichè il db contiene solo testi in inglese, questa eventualità non è poi così remota, e comunque potrebbe escludere dalla ricerca qualche risultato.
    D'altra parte, cercare la keyword anche all'interno di una parola può essere pericoloso, nel senso che può dare risultati indesiderati, se il termine cercato non è molto univoco (penso ad es. ad una ricerca sulla keyword MoMa - il museo di NY - che risultati potrebbe produrre!...).
    Probabilmente, poichè il problema è legato prevalentemente al genitivo sassone, occorrerebbe qualcosa in grado di cercare la keyword anche all'interno di una parola, ma solo se questa contiene un apostrofo.
    É possibile?
    Qualcuno ha suggerimenti da dare?
    metatad
    graphic & web design

  2. #2
    Se utilizzi il BOOLEAN MODE, la parola chiave PICASSO dovrebbe essere PICASSO* per ottenere anche i match con PICASSO'S

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2001
    residenza
    Napoli, Italia
    Messaggi
    1,074
    Grazie, comunque ho deciso di soprassedere...
    se il termine cercato fosse diverso da un nome/cognome, l'aggiunta dell'asterisco * rischierebbe di incasinare i risultati...
    Meglio rischiare di perdere qualcosa, che assicurarsi di impasticciare i risultati!
    metatad
    graphic & web design

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.