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 :

fulltext search - mot non indexé [2000]


Sujet :

Développement SQL Server

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2007
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 20
    Points : 18
    Points
    18
    Par défaut fulltext search - mot non indexé
    Bonjour,

    je suis vraiment dans la galère avec un catalogue de texte intégral.

    Le problème est l'indexation de certains mots qui ne sont pas Français mais technique.
    Par exemple, le terme 'SONUSS' n'est pas indexé alors que 'SONUS' l'est.
    Quand je fais une recherche sur SONUSS, aucune ligne n'est retournée.
    Je ne vois pas comment régler mon problème et j'ai besoin de vos lumières !

    merciiiiii

    Je suis sur un système SQLServer 2000 francais.

    Ma procédure d'indexation à chaque modif est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    exec sp_fulltext_table @Table, 'start_incremental'
    Le script de création du catalogue est

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
     
     
    --Activation du full-text
     
    IF (SELECT DATABASEPROPERTY('GLADYS', 'IsFulltextEnabled')) != 1
    	BEGIN
    		exec sp_fulltext_database 'enable'
    	END
    ELSE
    	BEGIN
    		PRINT 'le fulltextsearch est activé' 
    		--exec sp_fulltext_catalog 'GladysCatalogue', 'Stop' 
    	END
     
    --suppression
     
    if (OBJECTPROPERTY(object_id('Evenements'), 'TableHasActiveFulltextIndex') = 1)
    BEGIN
    	exec sp_fulltext_table 'Evenements', 'drop'
    	exec sp_fulltext_table 'AVP', 'drop'
    	exec sp_fulltext_table 'Interventions', 'drop'
    	exec sp_fulltext_table 'AVPInterventions', 'drop'
    	exec sp_fulltext_table 'ExpeHisto', 'drop'
    	exec sp_fulltext_table 'Experimentations', 'drop'
     
    	exec sp_fulltext_catalog 'GladysCatalogue', 'drop'
    END
     
     
    IF (SELECT DATABASEPROPERTY('GLADYS', 'IsFulltextEnabled')) = 1
    	BEGIN
    		--Création d'un catalogue full-text
    		exec sp_fulltext_catalog 'GladysCatalogue', 'create'
     
     
    		-- Ajout d'une table à la liste des tables indexées pour le full-text
    		exec sp_fulltext_table 'Evenements', 'create', 'GladysCatalogue', 'PK_Evenements' 
    		exec sp_fulltext_table 'AVP', 'create', 'GladysCatalogue', 'PK_AVP' 
    		exec sp_fulltext_table 'Interventions', 'create', 'GladysCatalogue', 'PK_Interventions' 
    		exec sp_fulltext_table 'AVPInterventions', 'create', 'GladysCatalogue', 'PK_AVPInterventions' 
    		exec sp_fulltext_table 'ExpeHisto', 'create', 'GladysCatalogue', 'PK_ExpeHisto' 
    		exec sp_fulltext_table 'Experimentations', 'create', 'GladysCatalogue', 'PK_Experimentations' 
     
    		--Ajout d'une colonne à la liste des colonnes indexées pour le full-text
    		exec sp_fulltext_column 'Evenements', 'Fichiers', 'add', 0
     
    		exec sp_fulltext_column 'AVP', 'Fichiers', 'add', 0 
    		exec sp_fulltext_column 'Interventions', 'Fichiers', 'add', 0 
    		exec sp_fulltext_column 'AVPInterventions', 'Fichiers', 'add', 0 
    		exec sp_fulltext_column 'ExpeHisto', 'Fichiers', 'add', 0 	
    		exec sp_fulltext_column 'Evenements', 'Descript', 'add', 0 
    		exec sp_fulltext_column 'AVP', 'Descript', 'add', 0 
    		exec sp_fulltext_column 'Interventions', 'Descript', 'add', 0 
    		exec sp_fulltext_column 'AVPInterventions', 'Descript', 'add', 0 
    		exec sp_fulltext_column 'ExpeHisto', 'Description', 'add', 0 
    		exec sp_fulltext_column 'ExpeHisto', 'Contraintes', 'add', 0 
    		exec sp_fulltext_column 'Experimentations', 'Description', 'add', 0 
    		exec sp_fulltext_column 'Experimentations', 'Libelle', 'add', 0 
    		exec sp_fulltext_column 'Experimentations', 'Objet', 'add', 0 
     
     
    		exec sp_fulltext_catalog 'GladysCatalogue', 'start_full' 
     
    		exec sp_fulltext_table 'Evenements', 'start_change_tracking'
    		exec sp_fulltext_table 'Evenements', 'start_background_updateindex'
    		exec sp_fulltext_table 'AVP', 'start_change_tracking'
    		exec sp_fulltext_table 'AVP', 'start_background_updateindex' 
    		exec sp_fulltext_table 'Interventions', 'start_change_tracking'
    		exec sp_fulltext_table 'Interventions', 'start_background_updateindex' 
    		exec sp_fulltext_table 'AVPInterventions', 'start_change_tracking' 
    		exec sp_fulltext_table 'AVPInterventions', 'start_background_updateindex' 
    		exec sp_fulltext_table 'ExpeHisto', 'start_change_tracking'
    		exec sp_fulltext_table 'ExpeHisto', 'start_background_updateindex' 
    		exec sp_fulltext_table 'Experimentations', 'start_change_tracking' 
    		exec sp_fulltext_table 'Experimentations', 'start_background_updateindex' 
     
     
     
     
    		---------------------------
    	END
    ELSE
    	PRINT 'Impossible d''activer le fulltextsearch'

    Ma recherche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT * FROM Evenements 
     WHERE (( FREETEXT(Evenements.Descript, ' "*sonuss*" ')) 
     )

  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 763
    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 763
    Points : 52 554
    Points
    52 554
    Billets dans le blog
    5
    Par défaut
    Vos tables ont-elles une colonne de type TIMESTAMP ?
    parce que comme vous activez la génération incrémentielle de vos index FT, il faut qu'il sache ou il en est de son travail. Si aucune de vos table ne comporte ce type de colonne, à chaque redémarrage il est obligé de reconstruire intégralement l'index FT, ce qui prend beaucoup de temps.

    Autrement dit faire de l'incrémental sans TIMESTAMP, c'est stupide en terme de perf....

    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 à l'essai
    Inscrit en
    Février 2007
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 20
    Points : 18
    Points
    18
    Par défaut
    Bonjour Mr SQLPro,

    Oui mes tables ont bien un champs Timestamp ...
    Stupidité écartée ... à ce niveau là mais peut être pas ailleurs ... vous allez pouvoir me le dire !

    Savez-vous comment indexer un mot comme 'SONUSS' qui n'est pas de la langue française ? Est-ce plutôt un problème de configuration ou de recherche ?
    Merci de votre aide

  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 763
    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 763
    Points : 52 554
    Points
    52 554
    Billets dans le blog
    5
    Par défaut
    allez voir dans le fichier des mots noirs (noiseword) si par hasard il n'y serait pas recensé ce mot là !

    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 à l'essai
    Inscrit en
    Février 2007
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 20
    Points : 18
    Points
    18
    Par défaut
    J'ai exécuté les requêtes sans résultat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT * from sys.fulltext_stopwords
    SELECT * from sys.fulltext_stoplists
    Dans le manager, je n'ai pas de liste de mots vides de texte intégral.

    j'ai exécuté ce script tout de même :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    sp_configure 'show advanced options', 1;
    RECONFIGURE;
    GO
     
    sp_configure 'transform noise words', 1;
    RECONFIGURE;
    GO
    Je cherche, je cherche ... si vous avez des idées ...

  6. #6
    Membre à l'essai
    Inscrit en
    Février 2007
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 20
    Points : 18
    Points
    18
    Par défaut
    Après avoir fais des tests dans tous les sens, j'ai un peu mieux analyser mon problème.
    Il n'a en fait pas de mal à indexer le mot SONUSS.
    Le problèmes est en fait que mon index est un mot du type DC_SONUSS_TOTO et que la recherche suivante ne fonctionne pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CONTAINS (MonChamp, '"*SONUSS*"')
    Me confirmez-vous que l'étoile * ne fonctionne qu'à la fin du mot et non au début ?
    Et que l'on ne peut donc pas avoir l'équivalent à
    mais seulement à
    ???

    Merci pour votre aide

  7. #7
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 763
    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 763
    Points : 52 554
    Points
    52 554
    Billets dans le blog
    5
    Par défaut
    Oui, uniquement SONUSS*. Ceci par le fait que les informations d'un index sont des vecteurs qui vont du point A au point B, le point A étant la première lettre et le point B la dernière. Or un vecteur à un sens (le bon) et donc un vecteur en sens inverse, c'est pas la même chose !

    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/ * * * * *

  8. #8
    Membre à l'essai
    Inscrit en
    Février 2007
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 20
    Points : 18
    Points
    18
    Par défaut
    merci beaucoup !

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

Discussions similaires

  1. foreign key non indexé
    Par olivanto dans le forum Oracle
    Réponses: 10
    Dernier message: 21/03/2007, 15h20
  2. indexation fulltext des mots avec un trait d'union
    Par andraz dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 12/03/2007, 16h46
  3. window.print avec mot non souhaité
    Par lodan dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 03/11/2006, 21h21
  4. recherche fulltext : mot non trouvé
    Par sam01 dans le forum Requêtes
    Réponses: 1
    Dernier message: 30/05/2006, 14h03
  5. Liste des foreigns key non indexés
    Par soazig dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 10/05/2006, 17h50

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