[SQL Server 2005] Full-Text Index n'indexe rien

Full-Text Index n'indexe rien [SQL Server 2005] - SQL/NoSQL - Programmation

Marsh Posté le 22-12-2006 à 11:19:12    

Bonjour tout le monde,
voilà j'ai un soucis.
Je suis sous MS Sql Server 2005 et j'ai besoin de faire un full text index pour mon futur moteur de recherche dans mon application.
J'ai donc cliqué sur la table dont j'ai besoin, j'ai créé le full-text index j'ai pas rencontré de soucis majeure jusque là, à part que je ne vois pas trop ce que je dois mettre à cet endroit (type column):
 
http://img148.imageshack.us/img148/5001/sqllc4.jpg
 
Après, quand je fais une recherche, il ne me met pas d'erreur mais ne me donne pas de résultat non plus.
 
Je n'ai jamais utilisé ce type de fonction donc je ne sais pas trop si je m'y prend bien.
 
Je dois faire une recherche sur un champ image et dedans j'y mets des documents word, txt, ...
 
Merci d'avance


Message édité par kramik le 22-12-2006 à 11:20:06
Reply

Marsh Posté le 22-12-2006 à 11:19:12   

Reply

Marsh Posté le 22-12-2006 à 11:27:33    

à priori, t'as pas besoin de mettre quoi que ce soit dans cette colonne si c'est le contenu du fichier.
 
par contre, euh... en fait, tu fais quoi exactement et du veux faire quoi exactement ? comment interrroges-tu ton index ? il est bien rafraîchit ?

Reply

Marsh Posté le 22-12-2006 à 11:39:40    

Ben je fais un SELECT * FROM Document WHERE FREETEXT(SavedFile, 'Monsieur')
Ca ne me retourne rien
Si je ne mets pas de type column, je ne sais pas cliquer sur next... (voir photo)

Reply

Marsh Posté le 22-12-2006 à 11:43:14    

ok
 
bon, je vais faire des tests, je reviens :)

Reply

Marsh Posté le 22-12-2006 à 11:43:46    

C'est gentil :)

Reply

Marsh Posté le 22-12-2006 à 12:15:56    

en fait, tu le trouves où ce wizard ? moi je l'ai pas [:magicbuzz]


Message édité par MagicBuzz le 22-12-2006 à 12:16:09
Reply

Marsh Posté le 22-12-2006 à 12:24:53    

Beuh ....
Je fais un clic droit sur la table et j'ai un menu full text index

Reply

Marsh Posté le 22-12-2006 à 12:35:21    

mon test complet (sans trouver le wizard en question)
 


SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[fichier](
 [id] [numeric](18, 0) IDENTITY(1,1) NOT NULL,
 [nom] [varchar](255) COLLATE French_CI_AS NOT NULL,
 [repertoire] [varchar](255) COLLATE French_CI_AS NOT NULL,
 [auteur] [varchar](50) COLLATE French_CI_AS NOT NULL,
 [documenttype] [varchar](50) COLLATE French_CI_AS NOT NULL,
 [extension] [varchar](50) COLLATE French_CI_AS NOT NULL,
 [contenu] [ntext] COLLATE French_CI_AS NOT NULL,
 CONSTRAINT [PK_fichier] PRIMARY KEY CLUSTERED  
(
 [id] ASC
)WITH (PAD_INDEX  = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
 
GO
CREATE FULLTEXT INDEX ON [dbo].[fichier](nom language french, auteur language french, contenu language french)
KEY INDEX [PK_fichier] ON [ft]
WITH CHANGE_TRACKING AUTO


 

Citation :

Avertissement : la table ou la vue indexée 'dbo.fichier' contient des colonnes indexées en texte intégral qui sont de type image, text ou ntext. Le suivi des modifications de texte intégral ne peut pas inclure les opérations WRITETEXT ou UPDATETEXT effectuées sur ces colonnes.


 
Attention donc ! Lancer un recalcul des index par job régulièrement.
 


insert into fichier (nom, repertoire, auteur, documenttype, extension, contenu)
values ('histoire de toto', 'c:\histoires\toto\', 'kramik', 'text/plain', 'txt', 'tu connais l''histoire de toto aux toiletes ? non. moi non plus, il a fermé la porte !');
 
insert into fichier (nom, repertoire, auteur, documenttype, extension, contenu)
values ('cours de sql server', 'c:\cours\sql server\', 'magicbuzz', 'text/plain', 'txt', 'sql serveur c''est bien, mais faut savoir s''sen servir');
 
insert into fichier (nom, repertoire, auteur, documenttype, extension, contenu)
values ('histoire de prof', 'c:\histoires\divers\', 'magicbuzz', 'text/plain', 'txt', 'c''est l''histoire d''un prof qui fait un cours, tu la connais ? non. moi aussi je séchais ce cours là...');
 
select * from fichier where freetext(contenu, 'histoire');
select * from fichier where freetext(auteur, 'magicbuzz');
select * from fichier where freetext(nom, 'cours');


 


 
(1 row(s) affected)
 
(1 row(s) affected)
 
(1 row(s) affected)
id                                      nom                                                                                                                                                                                                                                                             repertoire                                                                                                                                                                                                                                                      auteur                                             documenttype                                       extension                                          contenu
--------------------------------------- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
4                                       histoire de toto                                                                                                                                                                                                                                                c:\histoires\toto\                                                                                                                                                                                                                                              kramik                                             text/plain                                         txt                                                tu connais l'histoire de toto aux toiletes ? non. moi non plus, il a fermé la porte !
6                                       histoire de prof                                                                                                                                                                                                                                                c:\histoires\divers\                                                                                                                                                                                                                                            magicbuzz                                          text/plain                                         txt                                                c'est l'histoire d'un prof qui fait un cours, tu la connais ? non. moi aussi je séchais ce cours là...
 
(2 row(s) affected)
 
id                                      nom                                                                                                                                                                                                                                                             repertoire                                                                                                                                                                                                                                                      auteur                                             documenttype                                       extension                                          contenu
--------------------------------------- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
5                                       cours de sql server                                                                                                                                                                                                                                             c:\cours\sql server\                                                                                                                                                                                                                                            magicbuzz                                          text/plain                                         txt                                                sql serveur c'est bien, mais faut savoir s'sen servir
6                                       histoire de prof                                                                                                                                                                                                                                                c:\histoires\divers\                                                                                                                                                                                                                                            magicbuzz                                          text/plain                                         txt                                                c'est l'histoire d'un prof qui fait un cours, tu la connais ? non. moi aussi je séchais ce cours là...
 
(2 row(s) affected)
 
id                                      nom                                                                                                                                                                                                                                                             repertoire                                                                                                                                                                                                                                                      auteur                                             documenttype                                       extension                                          contenu
--------------------------------------- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
5                                       cours de sql server                                                                                                                                                                                                                                             c:\cours\sql server\                                                                                                                                                                                                                                            magicbuzz                                          text/plain                                         txt                                                sql serveur c'est bien, mais faut savoir s'sen servir
 
(1 row(s) affected)


 
En tout cas, ça semble marcher correctement chez moi...
 
Au cas où, crée un nouveau catalogue et colle ton index dedans.
CREATE FULLTEXT CATALOG ft AS DEFAULT;

Reply

Marsh Posté le 22-12-2006 à 12:35:43    

kramik a écrit :

Beuh ....
Je fais un clic droit sur la table et j'ai un menu full text index


le souci, c'est que moi j'ai la version express, donc j'ai pas accès à tout ça :D

Reply

Marsh Posté le 22-12-2006 à 12:39:32    

Merci pour ton test mais tu n'utilises pas de champ image comme moi. Mon texte est stocké dans un champ image, mon fichier plutot

Reply

Marsh Posté le 22-12-2006 à 12:39:32   

Reply

Marsh Posté le 22-12-2006 à 14:59:38    

image ou ntext, ça doit revenir au même logiquement.
 
par contre, un image, je pense qu'il faut donc reconstruire à la main l'index régulièrement, car SQL Server ne sais pas lire dedans comme ça, et surtout, il n'ose pas le monitorer en temps réel à cause de la taille possible : jusqu'à 4 Go (ou plus avec 2005, je sais plus) pour un seul champ Image.
 
donc faut que tu schedule un rebuild de l'index. consulte la doc sur le sujet, la syntaxe est tout bête.
 
y'a deux type de reconstruction. différencielle : t'as qu'à la lancer toutes les heures, et complète : toute les nuit, ou un soir de la semaine si ça prends vraiment beaucoup de temps


Message édité par MagicBuzz le 22-12-2006 à 15:00:48
Reply

Marsh Posté le 23-12-2006 à 14:31:31    

Ok merci c'est bon à savoir.
Mais comment cela se fait-il qu'il ne trouve rien même quand je construit l'index à la main ?
Et quel est ce champ que je dois lui spécifier quand je crée mon full-text index, comme sur la photo postée plus haut ?

Reply

Marsh Posté le 23-12-2006 à 17:38:16    

aucune idée, moi je n'ai pas ça wizard...
 
à mon avis, tu te plante de truc en fait : j'ai l'impression que ton wizard premet d'utiliser SQL Server pour rechercher des fichiers sur le disque dur et référencés dans cette table.
 
rien de sur, je n'ai jamais eu le temps de me plonger vraiment dans SQL Server 2005, et pour les fulltext index la version 2000 était infiniment plus simple (mais plus limitée aussi ;))

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed