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

Administration SQL Server Discussion :

[Fulltext] L'indexeur coupe certains mots accentués


Sujet :

Administration SQL Server

  1. #1
    Membre émérite
    Inscrit en
    Janvier 2011
    Messages
    805
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Janvier 2011
    Messages : 805
    Points : 2 918
    Points
    2 918
    Par défaut [Fulltext] L'indexeur coupe certains mots accentués
    Bonjour,

    J'ai un catalogue FULLTEXT qui référence 2 colonnes de la même table. Tout fonctionne bien sauf certains mots où on dirait que l'indexation ampute le terme dès qu'il y a un accent. Du coup, une requête (FREETEXT, LIKE...) sur le terme complet ne retourne rien, mais les requêtes sur la partie non-amputée marchent.

    Ex :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select mycolumn from mytable where Id = 2028
    mycolumn
    ------------------------------
    <P>Anaïs et Alizé</P>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from sys.dm_fts_index_keywords_by_document(DB_ID(),Object_iD('mytable'))where display_term like 'Anaïs%' or display_term like 'Alizé%'
    keyword display_term column_id document_id occurrence_count
    --------------------------------------------------------------------------------------------------
    (no results)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from sys.dm_fts_index_keywords_by_document(DB_ID(),Object_iD('mytable'))where display_term like 'Ana%' or display_term like 'Aliz%'
    keyword display_term column_id document_id occurrence_count
    -------------------------------------------------------------------------------------------------------------------------
    0x0061006C0069007A aliz 22 20259 1 <== mot amputé ici
    0x0061006E0061 ana 22 20259 1 <== et ici
    J'ai essayé de repeupler l'index manuellement et de le rebuilder, sans succès.

    Bizarrement, j'ai une autre base sur un serveur de recette avec exactement les mêmes données et le même catalogue FULLTEXT et les termes complets apparaissent bien comme référencés par l'index :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from sys.dm_fts_index_keywords_by_document(DB_ID(),Object_iD('mytable'))where display_term like 'Anaïs%' or display_term like 'Alizé%'
    keyword display_term column_id document_id occurrence_count
    ---------------------------------------------------------------------------------------------------------------------
    0x0061006C0069007A0065 alize 22 20259 1
    0x0061006E006100690073 anais 22 20259 1
    Quelques détails sur mon environnement :

    • Microsoft SQL Server 2008 (SP3) - 10.0.5828.0 (X64) Standard Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1)
    • Server Collation : SQL_Latin1_General_CP1_CI_AI
    • Catalogue en Accent Sensitive = false,
    • Langage Word Breaker : French pour les 2 colonnes
    • Catalog track changes : Automatic
    • Catalog Stoplist : SYSTEM


    Quelqu'un a-t-il déjà rencontré ce cas ?

    Merci d'avance pour votre aide.

  2. #2
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Ton catalogue a le paramètre Accent Sensitive à False, cela veut donc dire qu'il ignore les accents. Deux questions :
    - Si tu fais une recherche sur le terme "Anais" et non "Anaïs" (sans le tréma), as-tu un résultat ?
    - Si tu mets Accent Sensitive à True, et que tu fais une recherche sur "Anaïs", as-tu un résultat ?
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  3. #3
    Membre émérite
    Inscrit en
    Janvier 2011
    Messages
    805
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Janvier 2011
    Messages : 805
    Points : 2 918
    Points
    2 918
    Par défaut
    Merci pour ta réponse

    - Si tu fais une recherche sur le terme "Anais" et non "Anaïs" (sans le tréma), as-tu un résultat ?
    Non, et ça ne m'étonne pas car quand on regarde les termes référencés par l'index fulltext il y a "ana" mais pas "Anais".

    Si tu mets Accent Sensitive à True, et que tu fais une recherche sur "Anaïs", as-tu un résultat ?
    C'est une base de prod, je ne peux malheureusement pas faire des tests de ce genre sous peine d'utilisateurs très mécontents

    J'ai essayé en recette (où le bug ne se produit pas) et comme attendu, une recherche sur "Anaïs" marche alors qu'une recherche sur "Anais" ne trouve rien -normal, c'est de l'accent sensitive. Et dans les résultats de la DMV keywords_by_document rien n'a changé, j'ai toujours "anais" et "alize" et pas leurs versions amputées.

Discussions similaires

  1. [MySQL] ignorer certains mots dans la recherche en fulltexte
    Par Abou Zar dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 02/03/2010, 09h26
  2. [MySQL] Bloquer l'enregistrement de certains mots
    Par kevinf dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 07/11/2006, 16h09
  3. mettre certain mot en couleur dans un textArea
    Par lilou77 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 10
    Dernier message: 06/10/2006, 12h01
  4. Réponses: 2
    Dernier message: 18/12/2005, 21h10
  5. 1ère lettre en majuscule sauf certains mots !!!
    Par beletteroi dans le forum Access
    Réponses: 1
    Dernier message: 11/10/2005, 08h52

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