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

MS SQL Server Discussion :

Full text search - Idées pour requêter le contenu d'un fichier word


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Novembre 2006
    Messages
    131
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Novembre 2006
    Messages : 131
    Par défaut Full text search - Idées pour requêter le contenu d'un fichier word
    Bonjour,

    J'ai besoin de faire une recherche dans le contenu de fichiers word.
    Actuellement, j'ai dans mon application une table avec les champs
    ID Nom Prenom CheminFichierDescription
    ("CheminFichierDescription" étant le chemin du fichier word que je souhaite requêter)
    Le but est de faire une requête qui puisse avoir comme critère le contenu des champs nom et prénom mais aussi le contenu du texte contenu dans mon fichier word.
    J'imagine alors qu'il est nécessaire d'avoir le fichier word présent dans un champ de ma table.
    - Est ce une bonne supposition?
    Si oui, je me pose les questions suivantes pour pouvoir utiliser le full text search :
    - Est ce que je peux sauvegarder de façon binaire mon fichier dans ma table (avec un type binary, image ou filestream)?
    - Dois je sauvegarder le texte de mon fichier word dans un champ type (texte, blob) dans ma table?

    NB : L'idée d'un champ dédié vient du fait que chaque enregistrement de ma table fait référence a un fichier word et que pour des raisons d'optimisation au moment d'une recherche je n'ai pas besoin d'ouvrir tous les fichiers word.

    Merci d'avance

  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
    22 010
    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 : 22 010
    Billets dans le blog
    6
    Par défaut
    Lisez ceci : http://blog.developpez.com/sqlpro/p9...ext-search-no/
    Soit vous stocker le binaire du .doc dans une colonne VARBINARY indexée en full texte par ifilter, soit vous le mettez en FILESTREAL et faites de même sur la pseudo colonne de binarisation.

    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
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Le problème ici est qu'un fichier word stocké en binaire dans la base risque fort d'être inexploitable pour effectuer des recherche dedans (du fait du formattage, etc ....)à travers les mécanismes de Sql Server.

    Une solution peut être d'embarquer un moteur de recherche (style Exalead desktop, par exemple http://www.exalead.com/software/products/desktop-search/ ) dans votre application.

  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
    22 010
    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 : 22 010
    Billets dans le blog
    6
    Par défaut
    Citation Envoyé par Bluedeep Voir le message
    Le problème ici est qu'un fichier word stocké en binaire dans la base risque fort d'être inexploitable pour effectuer des recherche dedans (du fait du formattage, etc ....)à travers les mécanismes de Sql Server
    Ha bon ???? D'ou tenez vous cela ?????

    Je ne voit pas du tout ce que cela change ! Les ifilter du moteur Full text sont là pour extraire le texte de tous les types de documents éléctonique supportés.
    Sous 2008 et en natif, vous avez ces formats qui sont reconnus :
    .ascx
    .asm
    .asp
    .aspx
    .bat
    .c
    .cmd
    .cpp
    .cxx
    .def
    .dic
    .doc
    .dot
    .h
    .hhc
    .hpp
    .htm
    .html
    .htw
    .htx
    .hxx
    .ibq
    .idl
    .inc
    .inf
    .ini
    .inx
    .js
    .log
    .m3u
    .mht
    .obd
    .obt
    .odc
    .pl
    .pot
    .ppt
    .rc
    .reg
    .rtf
    .stm
    .txt
    .url
    .vbs
    .wtx
    .xlb
    .xlc
    .xls
    .xlt
    .xml

    De plus de nombreux ifilter sont disponibles pour d'autres types de doc électronique, pas exemple pour ppf :
    http://www.adobe.com/support/downloa...jsp?ftpID=2611
    http://www.foxitsoftware.com/pdf/ifilter/

    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
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Citation Envoyé par SQLpro Voir le message
    Ha bon ???? D'ou tenez vous cela ?????

    Je ne voit pas du tout ce que cela change ! Les ifilter du moteur Full text sont là pour extraire le texte de tous les types de documents éléctonique supportés.
    Je l'ignorais simplement complétement. Je pensais naïvement qu'un champ binaire était traité en ... binaire.

    Comment spécifie-t-on la nature du format stocké dans le champ ?

  6. #6
    Membre confirmé
    Inscrit en
    Novembre 2006
    Messages
    131
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Novembre 2006
    Messages : 131
    Par défaut
    Salut,

    Effectivement la piste de l'indexation textuelle est très bonne (Merci SqlPro).
    Après une matinée a lire le tutoriel indiqué et la documentation MSDN j'ai réussi a faire ce que je voulais en utilisant un champ varbinary(max) pour stocker mon fichier.
    Mes requêtes avec le prédicat CONTAINS fonctionne très bien avec le type .doc qui est nativement pris en charge (juste dommage que pour les pdf ca demande des inscriptions supplémentaires)

    @Bluedeep : Pour répondre a ta question :
    Comment spécifie-t-on la nature du format stocké dans le champ ?
    C'est au moment ou tu définis l'index de recherche sur une table que tu précises le nom du champ contenant l'extension du fichier a manipuler (.doc, .pdf, etc...)
    Cf : http://msdn.microsoft.com/fr-ca/library/ms187317.aspx

    Il ne me reste plus qu'a essayer avec FileStream qui me semble encore mieux pour limiter l'espace pris dans la base de données. Je me demande juste si FileStream est aussi performant qu'un champ varbinary....
    Pour ceux que ca intéresse : http://mikedavem.developpez.com/tuto...l-server-2008/

    Merci encore pour vos interventions très appréciées

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

Discussions similaires

  1. Hibernate et le Full Text Search de MySQL
    Par ygrim dans le forum Hibernate
    Réponses: 4
    Dernier message: 28/02/2008, 11h10
  2. Réponses: 12
    Dernier message: 02/01/2008, 13h16
  3. Full text search
    Par val2007 dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 01/10/2007, 11h22
  4. Text mining et full text search
    Par icebe dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 09/07/2007, 13h35
  5. Réponses: 3
    Dernier message: 16/12/2006, 12h59

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