IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement SQL Server Discussion :

résultats de recherche avec un ndex full-text


Sujet :

Développement SQL Server

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2011
    Messages : 61
    Points : 45
    Points
    45
    Par défaut résultats de recherche avec un ndex full-text
    svp , j'essaie de faire des recherche dans une base de données en utilisant un index full-text , j'utilise la fonction contains avec near et or.
    mon problème c'est que lorsque je cherche 2 mots je resoi des résultats qui ne sont pas classé par ordre de pertinence , par exemple quand je cherche les mot (x et y) je resoi des résultats qui contient les 2 mots suivi des ligne qui contient un seul mot suivi encore d'autres lignes qui contiennent les 2 mots!!!!
    je veux qu'on affiche les résultats qui contiennent les 2 mots d'abord puis les autres qui conteinnent un seul mots.
    merci bcp

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 768
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 768
    Points : 52 571
    Points
    52 571
    Billets dans le blog
    5
    Par défaut
    Dans ce cas utilisez CONTAINSTABLE qui permet de pondérer les résultats.

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2011
    Messages : 61
    Points : 45
    Points
    45
    Par défaut
    merci pour ta réponse , en fait je l'ai utilisé et sa ne donne pas de résultat , voici le schéma de ma requête:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELECT *
    FROM t_table AS ft_table INNER JOIN
       CONTAINSTABLE (t_table,
         champs1, 
          '(near(mot1 ,mot2) or mot1 or mot2)'
       ) AS KEY_TBL
     
       ON ft_table.cle = KEY_TBL.[KEY]
     
    ORDER BY KEY_TBL.RANK DESC
    ça ne donne pas les résultats voulu , je vous qu'on finisse avec les résultats qui contiennent les 2 mots avant de passé a ceux qui n'en contiennent qu'un seul!!!
    merci

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 768
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 768
    Points : 52 571
    Points
    52 571
    Billets dans le blog
    5
    Par défaut
    C'est normal vous ne posez pas la bonne question ! Vous dite je veux les deux mots proches ou un mot ou un autre. Les résultats sont conformes à votre demande. Récrivez votre requête afin qu'elle corresponde à votre demande, par exemple avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CONTAINSTABLE (t_table, champs1, 'mot1 or mot2')
    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2011
    Messages : 61
    Points : 45
    Points
    45
    Par défaut
    quand j'utilise mot1 or mot2 , je tombe dans le même problème ou pire
    c'est exactement le problème je ne sais pas comment formuler ce besoin de ressortir les résultats avec les 2 mots en premier suivit par ceux qui contiennent l'un des deux mots , si vous avez une idée??
    merci bcp

  6. #6
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2011
    Messages : 61
    Points : 45
    Points
    45
    Par défaut
    c'est bon j'ai trouvé , j'ai utilisé weight() pour pondérer les résultats
    merci bcp pour tes réponses

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] Rechercher avec valeur de champ texte
    Par xymagic dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 22/11/2011, 18h40
  2. [MySQL] Recherche d'un outil Full Text avec PHP
    Par amalec78 dans le forum PHP & Base de données
    Réponses: 0
    Dernier message: 25/11/2010, 08h47
  3. recherche sur 2 tables avec le full-text search
    Par momoh dans le forum VB.NET
    Réponses: 1
    Dernier message: 04/05/2009, 15h16
  4. Réponses: 0
    Dernier message: 01/08/2008, 16h15
  5. probleme avec une requete full text
    Par maxxou dans le forum Langage SQL
    Réponses: 2
    Dernier message: 07/03/2005, 17h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo