none
Recherche par ordre de pertinence

    Question

  • Bonjour à tous,

    Je voudrais avoir une confirmation, j'utilise la recherche intégrale de SQL Server 2000 et souhaite savoir si la fonction freetexttable permet de classer les résultats trouvés par ordre de pertinence.
    C'est à dire de la façon suivante : les résultats contenant les mots clés A et B en premier, puis les résultats contenant A ou B. Puisque il m'arrive d'avoir des résultats d'un autre ordre de ce qui est cité ci-dessus.


    Que puis je faire pour avoir les résultats contenant les mots motA et motB en premier puis les résultats avec au moins un motA ou un motB ?

    En environnement technologique j'utilise
    Windows 2000 Server, SQL Server 2000

    En vous remerciant d'avance.


    Je vous met la requête que j'utilise pour la recherche des références :
    SELECT titre FROM produit AS prod INNER JOIN freetexttable(produit,titre,'motA motB',1000000000) AS rfts ON prod.id_prod = rfts.[KEY] ORDER BY rfts.rank DESC
    Wednesday, November 05, 2008 9:09 AM

All replies

  • La pertinence est très complexe à calculer; elle n'est pas aussi simple qu'une précédence entre AND et OR. La formule de calcul est décrite dans la MSDN :

     

    http://technet.microsoft.com/en-us/library/ms142524(SQL.90).aspx (US - version 2005, la versino 2000 n'étant plus supportée)

     

    Sans détailler l'algorithme OKAPI BM25 (ça n'apporterait pas grand chose de plus), il faut bien comprendre que la densité est un critère important. En effet, si motA est seul mais dans un texte court, il peut passer devant motA et motB noyés dans un long texte.

     

     

    Jean-Pierre Riehl

    MVP SQL Server

    Monday, November 24, 2008 10:25 PM