Hello
Comment faire realiser un vrai moteur de recherche avec le FULLTEXT de SQL
SERVER?
en fait, j'aimerai que la recherche cherche a l'interieur des mots
indexés.... BON pourra me rendre BON, BONNE, BONJOUR, JAMBON,..... (si les
derniers sont contenus dans des champs indexés...)
pour info voila ma requete de recherche :
SELECT tbl_prod_key.RANK, p.produit_id
FROM product AS p
INNER JOIN FREETEXTTABLE (product, *, @prmStr ) AS tbl_prod_key ON
p.prod_id = tbl_prod_key.[KEY]
ORDER BY tbl_prod_key.RANK DESC
@prmStr est la requete que je donne .....
voila! merci
a+
syl
Hello
Comment faire realiser un vrai moteur de recherche avec le FULLTEXT de SQL
SERVER?
en fait, j'aimerai que la recherche cherche a l'interieur des mots
indexés.... BON pourra me rendre BON, BONNE, BONJOUR, JAMBON,..... (si les
derniers sont contenus dans des champs indexés...)
pour info voila ma requete de recherche :
SELECT tbl_prod_key.RANK, p.produit_id
FROM product AS p
INNER JOIN FREETEXTTABLE (product, *, @prmStr ) AS tbl_prod_key ON
p.prod_id = tbl_prod_key.[KEY]
ORDER BY tbl_prod_key.RANK DESC
@prmStr est la requete que je donne .....
voila! merci
a+
syl
Hello
Comment faire realiser un vrai moteur de recherche avec le FULLTEXT de SQL
SERVER?
en fait, j'aimerai que la recherche cherche a l'interieur des mots
indexés.... BON pourra me rendre BON, BONNE, BONJOUR, JAMBON,..... (si les
derniers sont contenus dans des champs indexés...)
pour info voila ma requete de recherche :
SELECT tbl_prod_key.RANK, p.produit_id
FROM product AS p
INNER JOIN FREETEXTTABLE (product, *, @prmStr ) AS tbl_prod_key ON
p.prod_id = tbl_prod_key.[KEY]
ORDER BY tbl_prod_key.RANK DESC
@prmStr est la requete que je donne .....
voila! merci
a+
syl
Voir aide en ligne de CONTAINS
Une requete du genre:
SELECT * FROM Latable WHERE CONTAINS(*, '"*bon*"')
Laurent.
"lobrys" wrote in message
news:ONEI%
> Hello
>
> Comment faire realiser un vrai moteur de recherche avec le FULLTEXT de
> SERVER?
>
> en fait, j'aimerai que la recherche cherche a l'interieur des mots
> indexés.... BON pourra me rendre BON, BONNE, BONJOUR, JAMBON,..... (si
4
> derniers sont contenus dans des champs indexés...)
>
> pour info voila ma requete de recherche :
>
> SELECT tbl_prod_key.RANK, p.produit_id
> FROM product AS p
> INNER JOIN FREETEXTTABLE (product, *, @prmStr ) AS tbl_prod_key ON
> p.prod_id = tbl_prod_key.[KEY]
> ORDER BY tbl_prod_key.RANK DESC
>
> @prmStr est la requete que je donne .....
>
> voila! merci
> a+
>
> syl
>
>
Voir aide en ligne de CONTAINS
Une requete du genre:
SELECT * FROM Latable WHERE CONTAINS(*, '"*bon*"')
Laurent.
"lobrys" <REMOVE_MEsylvain@cervocom.com> wrote in message
news:ONEI%23X3YEHA.3128@TK2MSFTNGP09.phx.gbl...
> Hello
>
> Comment faire realiser un vrai moteur de recherche avec le FULLTEXT de
> SERVER?
>
> en fait, j'aimerai que la recherche cherche a l'interieur des mots
> indexés.... BON pourra me rendre BON, BONNE, BONJOUR, JAMBON,..... (si
4
> derniers sont contenus dans des champs indexés...)
>
> pour info voila ma requete de recherche :
>
> SELECT tbl_prod_key.RANK, p.produit_id
> FROM product AS p
> INNER JOIN FREETEXTTABLE (product, *, @prmStr ) AS tbl_prod_key ON
> p.prod_id = tbl_prod_key.[KEY]
> ORDER BY tbl_prod_key.RANK DESC
>
> @prmStr est la requete que je donne .....
>
> voila! merci
> a+
>
> syl
>
>
Voir aide en ligne de CONTAINS
Une requete du genre:
SELECT * FROM Latable WHERE CONTAINS(*, '"*bon*"')
Laurent.
"lobrys" wrote in message
news:ONEI%
> Hello
>
> Comment faire realiser un vrai moteur de recherche avec le FULLTEXT de
> SERVER?
>
> en fait, j'aimerai que la recherche cherche a l'interieur des mots
> indexés.... BON pourra me rendre BON, BONNE, BONJOUR, JAMBON,..... (si
4
> derniers sont contenus dans des champs indexés...)
>
> pour info voila ma requete de recherche :
>
> SELECT tbl_prod_key.RANK, p.produit_id
> FROM product AS p
> INNER JOIN FREETEXTTABLE (product, *, @prmStr ) AS tbl_prod_key ON
> p.prod_id = tbl_prod_key.[KEY]
> ORDER BY tbl_prod_key.RANK DESC
>
> @prmStr est la requete que je donne .....
>
> voila! merci
> a+
>
> syl
>
>
merci!
effectivement, je peux m'en servir......
sauf que ma requete c'est peut etre : "truc joe bidule"
faut que je fasse une boucle sur chaque mots dans ma requete SQL?
et ajouter les resultats de ta requete dans une table TEMP
comment je peux faire ca simplement?
a+
syl
"Laurent Moreau" a écrit dans le
de news:ccgi56$qm$
> Voir aide en ligne de CONTAINS
>
> Une requete du genre:
>
> SELECT * FROM Latable WHERE CONTAINS(*, '"*bon*"')
>
>
> Laurent.
>
>
>
>
> "lobrys" wrote in message
> news:ONEI%
> > Hello
> >
> > Comment faire realiser un vrai moteur de recherche avec le FULLTEXT de
SQL
> > SERVER?
> >
> > en fait, j'aimerai que la recherche cherche a l'interieur des mots
> > indexés.... BON pourra me rendre BON, BONNE, BONJOUR, JAMBON,..... (si
les
> 4
> > derniers sont contenus dans des champs indexés...)
> >
> > pour info voila ma requete de recherche :
> >
> > SELECT tbl_prod_key.RANK, p.produit_id
> > FROM product AS p
> > INNER JOIN FREETEXTTABLE (product, *, @prmStr ) AS tbl_prod_key
> > p.prod_id = tbl_prod_key.[KEY]
> > ORDER BY tbl_prod_key.RANK DESC
> >
> > @prmStr est la requete que je donne .....
> >
> > voila! merci
> > a+
> >
> > syl
> >
> >
>
>
merci!
effectivement, je peux m'en servir......
sauf que ma requete c'est peut etre : "truc joe bidule"
faut que je fasse une boucle sur chaque mots dans ma requete SQL?
et ajouter les resultats de ta requete dans une table TEMP
comment je peux faire ca simplement?
a+
syl
"Laurent Moreau" <l.moreau@SUPPRIMERCECIsystonic.fr> a écrit dans le
de news:ccgi56$qm$1@s1.read.news.oleane.net...
> Voir aide en ligne de CONTAINS
>
> Une requete du genre:
>
> SELECT * FROM Latable WHERE CONTAINS(*, '"*bon*"')
>
>
> Laurent.
>
>
>
>
> "lobrys" <REMOVE_MEsylvain@cervocom.com> wrote in message
> news:ONEI%23X3YEHA.3128@TK2MSFTNGP09.phx.gbl...
> > Hello
> >
> > Comment faire realiser un vrai moteur de recherche avec le FULLTEXT de
SQL
> > SERVER?
> >
> > en fait, j'aimerai que la recherche cherche a l'interieur des mots
> > indexés.... BON pourra me rendre BON, BONNE, BONJOUR, JAMBON,..... (si
les
> 4
> > derniers sont contenus dans des champs indexés...)
> >
> > pour info voila ma requete de recherche :
> >
> > SELECT tbl_prod_key.RANK, p.produit_id
> > FROM product AS p
> > INNER JOIN FREETEXTTABLE (product, *, @prmStr ) AS tbl_prod_key
> > p.prod_id = tbl_prod_key.[KEY]
> > ORDER BY tbl_prod_key.RANK DESC
> >
> > @prmStr est la requete que je donne .....
> >
> > voila! merci
> > a+
> >
> > syl
> >
> >
>
>
merci!
effectivement, je peux m'en servir......
sauf que ma requete c'est peut etre : "truc joe bidule"
faut que je fasse une boucle sur chaque mots dans ma requete SQL?
et ajouter les resultats de ta requete dans une table TEMP
comment je peux faire ca simplement?
a+
syl
"Laurent Moreau" a écrit dans le
de news:ccgi56$qm$
> Voir aide en ligne de CONTAINS
>
> Une requete du genre:
>
> SELECT * FROM Latable WHERE CONTAINS(*, '"*bon*"')
>
>
> Laurent.
>
>
>
>
> "lobrys" wrote in message
> news:ONEI%
> > Hello
> >
> > Comment faire realiser un vrai moteur de recherche avec le FULLTEXT de
SQL
> > SERVER?
> >
> > en fait, j'aimerai que la recherche cherche a l'interieur des mots
> > indexés.... BON pourra me rendre BON, BONNE, BONJOUR, JAMBON,..... (si
les
> 4
> > derniers sont contenus dans des champs indexés...)
> >
> > pour info voila ma requete de recherche :
> >
> > SELECT tbl_prod_key.RANK, p.produit_id
> > FROM product AS p
> > INNER JOIN FREETEXTTABLE (product, *, @prmStr ) AS tbl_prod_key
> > p.prod_id = tbl_prod_key.[KEY]
> > ORDER BY tbl_prod_key.RANK DESC
> >
> > @prmStr est la requete que je donne .....
> >
> > voila! merci
> > a+
> >
> > syl
> >
> >
>
>
Allez c'est mon jour de bonté, je prend la peine de t'écrire ça:
Il manque quelques controle, par exemple si la phrase est vide a
l'origine...
Laurent
---------------------------
CREATE PROCEDURE [dbo].[nom_proc]
@Phrase AS VarChar(8000)
AS
SET NOCOUNT ON
DECLARE @Req AS VarChar(8000)
DECLARE @PosEspace AS Integer
SET @Phrase=LTRIM(RTRIM(@Phrase)) -- vire les espaces devant et derriere
WHILE CHARINDEX(' ',@Phrase)>0 -- tant qu'il y a des espaces
BEGIN
SELECT @PosEspace=CHARINDEX(' ',@Phrase) -- position de l'espace ?
SET @Req = COALESCE(@Req + ' OR ', '') + 'CONTAINS(*, ''"*' +
@PosEspace-1)+ '*"'')' -- ajoute OR si la requete n'est pas vide et ajoute
le CONTAINS
SET @Phrase=SUBSTRING(@Phrase,@PosEspace + 1 ,LEN(@Phrase) -
PosEspace) -- suite de la phrase apres l'espace
SET @Phrase=LTRIM(@Phrase) -- vire les espaces devant (pour pas avoir
pb avec les doubles espaces
END
SET @Req = COALESCE(@Req + ' OR ', '') + 'CONTAINS(*, ''"*' +
REPLACE(@Phrase,'''','''''') + '*"'')' -- ajoute OR si la requete n'est
vide et ajoute le CONTAINS qui reste
SET @Req = 'SELECT * FROM MaTable WHERE ' + @Req -- fabrique le début de
la requete
SET NOCOUNT OFF
-- print @Req -- enlever les commentaires pour debugger
EXEC(@Req) -- exec de la requete
------------------------------
"lobrys" wrote in message
news:
> merci!
> effectivement, je peux m'en servir......
>
> sauf que ma requete c'est peut etre : "truc joe bidule"
>
> faut que je fasse une boucle sur chaque mots dans ma requete SQL?
> et ajouter les resultats de ta requete dans une table TEMP
> comment je peux faire ca simplement?
>
> a+
> syl
>
>
>
> "Laurent Moreau" a écrit dans le
message
> de news:ccgi56$qm$
> > Voir aide en ligne de CONTAINS
> >
> > Une requete du genre:
> >
> > SELECT * FROM Latable WHERE CONTAINS(*, '"*bon*"')
> >
> >
> > Laurent.
> >
> >
> >
> >
> > "lobrys" wrote in message
> > news:ONEI%
> > > Hello
> > >
> > > Comment faire realiser un vrai moteur de recherche avec le FULLTEXT
> SQL
> > > SERVER?
> > >
> > > en fait, j'aimerai que la recherche cherche a l'interieur des mots
> > > indexés.... BON pourra me rendre BON, BONNE, BONJOUR, JAMBON,.....
> les
> > 4
> > > derniers sont contenus dans des champs indexés...)
> > >
> > > pour info voila ma requete de recherche :
> > >
> > > SELECT tbl_prod_key.RANK, p.produit_id
> > > FROM product AS p
> > > INNER JOIN FREETEXTTABLE (product, *, @prmStr ) AS
ON
> > > p.prod_id = tbl_prod_key.[KEY]
> > > ORDER BY tbl_prod_key.RANK DESC
> > >
> > > @prmStr est la requete que je donne .....
> > >
> > > voila! merci
> > > a+
> > >
> > > syl
> > >
> > >
> >
> >
>
>
Allez c'est mon jour de bonté, je prend la peine de t'écrire ça:
Il manque quelques controle, par exemple si la phrase est vide a
l'origine...
Laurent
---------------------------
CREATE PROCEDURE [dbo].[nom_proc]
@Phrase AS VarChar(8000)
AS
SET NOCOUNT ON
DECLARE @Req AS VarChar(8000)
DECLARE @PosEspace AS Integer
SET @Phrase=LTRIM(RTRIM(@Phrase)) -- vire les espaces devant et derriere
WHILE CHARINDEX(' ',@Phrase)>0 -- tant qu'il y a des espaces
BEGIN
SELECT @PosEspace=CHARINDEX(' ',@Phrase) -- position de l'espace ?
SET @Req = COALESCE(@Req + ' OR ', '') + 'CONTAINS(*, ''"*' +
@PosEspace-1)+ '*"'')' -- ajoute OR si la requete n'est pas vide et ajoute
le CONTAINS
SET @Phrase=SUBSTRING(@Phrase,@PosEspace + 1 ,LEN(@Phrase) -
PosEspace) -- suite de la phrase apres l'espace
SET @Phrase=LTRIM(@Phrase) -- vire les espaces devant (pour pas avoir
pb avec les doubles espaces
END
SET @Req = COALESCE(@Req + ' OR ', '') + 'CONTAINS(*, ''"*' +
REPLACE(@Phrase,'''','''''') + '*"'')' -- ajoute OR si la requete n'est
vide et ajoute le CONTAINS qui reste
SET @Req = 'SELECT * FROM MaTable WHERE ' + @Req -- fabrique le début de
la requete
SET NOCOUNT OFF
-- print @Req -- enlever les commentaires pour debugger
EXEC(@Req) -- exec de la requete
------------------------------
"lobrys" <REMOVE_MEsylvain@cervocom.com> wrote in message
news:ejj9PKDZEHA.3112@TK2MSFTNGP09.phx.gbl...
> merci!
> effectivement, je peux m'en servir......
>
> sauf que ma requete c'est peut etre : "truc joe bidule"
>
> faut que je fasse une boucle sur chaque mots dans ma requete SQL?
> et ajouter les resultats de ta requete dans une table TEMP
> comment je peux faire ca simplement?
>
> a+
> syl
>
>
>
> "Laurent Moreau" <l.moreau@SUPPRIMERCECIsystonic.fr> a écrit dans le
message
> de news:ccgi56$qm$1@s1.read.news.oleane.net...
> > Voir aide en ligne de CONTAINS
> >
> > Une requete du genre:
> >
> > SELECT * FROM Latable WHERE CONTAINS(*, '"*bon*"')
> >
> >
> > Laurent.
> >
> >
> >
> >
> > "lobrys" <REMOVE_MEsylvain@cervocom.com> wrote in message
> > news:ONEI%23X3YEHA.3128@TK2MSFTNGP09.phx.gbl...
> > > Hello
> > >
> > > Comment faire realiser un vrai moteur de recherche avec le FULLTEXT
> SQL
> > > SERVER?
> > >
> > > en fait, j'aimerai que la recherche cherche a l'interieur des mots
> > > indexés.... BON pourra me rendre BON, BONNE, BONJOUR, JAMBON,.....
> les
> > 4
> > > derniers sont contenus dans des champs indexés...)
> > >
> > > pour info voila ma requete de recherche :
> > >
> > > SELECT tbl_prod_key.RANK, p.produit_id
> > > FROM product AS p
> > > INNER JOIN FREETEXTTABLE (product, *, @prmStr ) AS
ON
> > > p.prod_id = tbl_prod_key.[KEY]
> > > ORDER BY tbl_prod_key.RANK DESC
> > >
> > > @prmStr est la requete que je donne .....
> > >
> > > voila! merci
> > > a+
> > >
> > > syl
> > >
> > >
> >
> >
>
>
Allez c'est mon jour de bonté, je prend la peine de t'écrire ça:
Il manque quelques controle, par exemple si la phrase est vide a
l'origine...
Laurent
---------------------------
CREATE PROCEDURE [dbo].[nom_proc]
@Phrase AS VarChar(8000)
AS
SET NOCOUNT ON
DECLARE @Req AS VarChar(8000)
DECLARE @PosEspace AS Integer
SET @Phrase=LTRIM(RTRIM(@Phrase)) -- vire les espaces devant et derriere
WHILE CHARINDEX(' ',@Phrase)>0 -- tant qu'il y a des espaces
BEGIN
SELECT @PosEspace=CHARINDEX(' ',@Phrase) -- position de l'espace ?
SET @Req = COALESCE(@Req + ' OR ', '') + 'CONTAINS(*, ''"*' +
@PosEspace-1)+ '*"'')' -- ajoute OR si la requete n'est pas vide et ajoute
le CONTAINS
SET @Phrase=SUBSTRING(@Phrase,@PosEspace + 1 ,LEN(@Phrase) -
PosEspace) -- suite de la phrase apres l'espace
SET @Phrase=LTRIM(@Phrase) -- vire les espaces devant (pour pas avoir
pb avec les doubles espaces
END
SET @Req = COALESCE(@Req + ' OR ', '') + 'CONTAINS(*, ''"*' +
REPLACE(@Phrase,'''','''''') + '*"'')' -- ajoute OR si la requete n'est
vide et ajoute le CONTAINS qui reste
SET @Req = 'SELECT * FROM MaTable WHERE ' + @Req -- fabrique le début de
la requete
SET NOCOUNT OFF
-- print @Req -- enlever les commentaires pour debugger
EXEC(@Req) -- exec de la requete
------------------------------
"lobrys" wrote in message
news:
> merci!
> effectivement, je peux m'en servir......
>
> sauf que ma requete c'est peut etre : "truc joe bidule"
>
> faut que je fasse une boucle sur chaque mots dans ma requete SQL?
> et ajouter les resultats de ta requete dans une table TEMP
> comment je peux faire ca simplement?
>
> a+
> syl
>
>
>
> "Laurent Moreau" a écrit dans le
message
> de news:ccgi56$qm$
> > Voir aide en ligne de CONTAINS
> >
> > Une requete du genre:
> >
> > SELECT * FROM Latable WHERE CONTAINS(*, '"*bon*"')
> >
> >
> > Laurent.
> >
> >
> >
> >
> > "lobrys" wrote in message
> > news:ONEI%
> > > Hello
> > >
> > > Comment faire realiser un vrai moteur de recherche avec le FULLTEXT
> SQL
> > > SERVER?
> > >
> > > en fait, j'aimerai que la recherche cherche a l'interieur des mots
> > > indexés.... BON pourra me rendre BON, BONNE, BONJOUR, JAMBON,.....
> les
> > 4
> > > derniers sont contenus dans des champs indexés...)
> > >
> > > pour info voila ma requete de recherche :
> > >
> > > SELECT tbl_prod_key.RANK, p.produit_id
> > > FROM product AS p
> > > INNER JOIN FREETEXTTABLE (product, *, @prmStr ) AS
ON
> > > p.prod_id = tbl_prod_key.[KEY]
> > > ORDER BY tbl_prod_key.RANK DESC
> > >
> > > @prmStr est la requete que je donne .....
> > >
> > > voila! merci
> > > a+
> > >
> > > syl
> > >
> > >
> >
> >
>
>
alors ca! ca fait plaisir!!!!
merci COPAIN!
je vais étudier ca!
a+
et merci encore!
syl
"Laurent Moreau" a écrit dans le
de news:ccj0ls$16n$
> Allez c'est mon jour de bonté, je prend la peine de t'écrire ça:
> Il manque quelques controle, par exemple si la phrase est vide a
> l'origine...
>
>
> Laurent
>
> ---------------------------
> CREATE PROCEDURE [dbo].[nom_proc]
> @Phrase AS VarChar(8000)
> AS
>
> SET NOCOUNT ON
>
> DECLARE @Req AS VarChar(8000)
> DECLARE @PosEspace AS Integer
>
> SET @Phrase=LTRIM(RTRIM(@Phrase)) -- vire les espaces devant et
>
> WHILE CHARINDEX(' ',@Phrase)>0 -- tant qu'il y a des espaces
> BEGIN
> SELECT @PosEspace=CHARINDEX(' ',@Phrase) -- position de l'espace ?
> SET @Req = COALESCE(@Req + ' OR ', '') + 'CONTAINS(*, ''"*' +
LEFT(@Phrase,
> @PosEspace-1)+ '*"'')' -- ajoute OR si la requete n'est pas vide et
> le CONTAINS
> SET @Phrase=SUBSTRING(@Phrase,@PosEspace + 1 ,LEN(@Phrase) -
> PosEspace) -- suite de la phrase apres l'espace
> SET @Phrase=LTRIM(@Phrase) -- vire les espaces devant (pour pas avoir
de
> pb avec les doubles espaces
> END
> SET @Req = COALESCE(@Req + ' OR ', '') + 'CONTAINS(*, ''"*' +
> REPLACE(@Phrase,'''','''''') + '*"'')' -- ajoute OR si la requete n'est
pas
> vide et ajoute le CONTAINS qui reste
>
> SET @Req = 'SELECT * FROM MaTable WHERE ' + @Req -- fabrique le début
> la requete
>
> SET NOCOUNT OFF
>
> -- print @Req -- enlever les commentaires pour debugger
> EXEC(@Req) -- exec de la requete
> ------------------------------
>
>
>
>
>
>
>
>
>
>
>
> "lobrys" wrote in message
> news:
> > merci!
> > effectivement, je peux m'en servir......
> >
> > sauf que ma requete c'est peut etre : "truc joe bidule"
> >
> > faut que je fasse une boucle sur chaque mots dans ma requete SQL?
> > et ajouter les resultats de ta requete dans une table TEMP
> > comment je peux faire ca simplement?
> >
> > a+
> > syl
> >
> >
> >
> > "Laurent Moreau" a écrit dans le
> message
> > de news:ccgi56$qm$
> > > Voir aide en ligne de CONTAINS
> > >
> > > Une requete du genre:
> > >
> > > SELECT * FROM Latable WHERE CONTAINS(*, '"*bon*"')
> > >
> > >
> > > Laurent.
> > >
> > >
> > >
> > >
> > > "lobrys" wrote in message
> > > news:ONEI%
> > > > Hello
> > > >
> > > > Comment faire realiser un vrai moteur de recherche avec le
de
> > SQL
> > > > SERVER?
> > > >
> > > > en fait, j'aimerai que la recherche cherche a l'interieur des mots
> > > > indexés.... BON pourra me rendre BON, BONNE, BONJOUR, JAMBON,.....
(si
> > les
> > > 4
> > > > derniers sont contenus dans des champs indexés...)
> > > >
> > > > pour info voila ma requete de recherche :
> > > >
> > > > SELECT tbl_prod_key.RANK, p.produit_id
> > > > FROM product AS p
> > > > INNER JOIN FREETEXTTABLE (product, *, @prmStr ) AS
tbl_prod_key
> ON
> > > > p.prod_id = tbl_prod_key.[KEY]
> > > > ORDER BY tbl_prod_key.RANK DESC
> > > >
> > > > @prmStr est la requete que je donne .....
> > > >
> > > > voila! merci
> > > > a+
> > > >
> > > > syl
> > > >
> > > >
> > >
> > >
> >
> >
>
>
alors ca! ca fait plaisir!!!!
merci COPAIN!
je vais étudier ca!
a+
et merci encore!
syl
"Laurent Moreau" <l.moreau@SUPPRIMERCECIsystonic.fr> a écrit dans le
de news:ccj0ls$16n$1@s1.read.news.oleane.net...
> Allez c'est mon jour de bonté, je prend la peine de t'écrire ça:
> Il manque quelques controle, par exemple si la phrase est vide a
> l'origine...
>
>
> Laurent
>
> ---------------------------
> CREATE PROCEDURE [dbo].[nom_proc]
> @Phrase AS VarChar(8000)
> AS
>
> SET NOCOUNT ON
>
> DECLARE @Req AS VarChar(8000)
> DECLARE @PosEspace AS Integer
>
> SET @Phrase=LTRIM(RTRIM(@Phrase)) -- vire les espaces devant et
>
> WHILE CHARINDEX(' ',@Phrase)>0 -- tant qu'il y a des espaces
> BEGIN
> SELECT @PosEspace=CHARINDEX(' ',@Phrase) -- position de l'espace ?
> SET @Req = COALESCE(@Req + ' OR ', '') + 'CONTAINS(*, ''"*' +
LEFT(@Phrase,
> @PosEspace-1)+ '*"'')' -- ajoute OR si la requete n'est pas vide et
> le CONTAINS
> SET @Phrase=SUBSTRING(@Phrase,@PosEspace + 1 ,LEN(@Phrase) -
> PosEspace) -- suite de la phrase apres l'espace
> SET @Phrase=LTRIM(@Phrase) -- vire les espaces devant (pour pas avoir
de
> pb avec les doubles espaces
> END
> SET @Req = COALESCE(@Req + ' OR ', '') + 'CONTAINS(*, ''"*' +
> REPLACE(@Phrase,'''','''''') + '*"'')' -- ajoute OR si la requete n'est
pas
> vide et ajoute le CONTAINS qui reste
>
> SET @Req = 'SELECT * FROM MaTable WHERE ' + @Req -- fabrique le début
> la requete
>
> SET NOCOUNT OFF
>
> -- print @Req -- enlever les commentaires pour debugger
> EXEC(@Req) -- exec de la requete
> ------------------------------
>
>
>
>
>
>
>
>
>
>
>
> "lobrys" <REMOVE_MEsylvain@cervocom.com> wrote in message
> news:ejj9PKDZEHA.3112@TK2MSFTNGP09.phx.gbl...
> > merci!
> > effectivement, je peux m'en servir......
> >
> > sauf que ma requete c'est peut etre : "truc joe bidule"
> >
> > faut que je fasse une boucle sur chaque mots dans ma requete SQL?
> > et ajouter les resultats de ta requete dans une table TEMP
> > comment je peux faire ca simplement?
> >
> > a+
> > syl
> >
> >
> >
> > "Laurent Moreau" <l.moreau@SUPPRIMERCECIsystonic.fr> a écrit dans le
> message
> > de news:ccgi56$qm$1@s1.read.news.oleane.net...
> > > Voir aide en ligne de CONTAINS
> > >
> > > Une requete du genre:
> > >
> > > SELECT * FROM Latable WHERE CONTAINS(*, '"*bon*"')
> > >
> > >
> > > Laurent.
> > >
> > >
> > >
> > >
> > > "lobrys" <REMOVE_MEsylvain@cervocom.com> wrote in message
> > > news:ONEI%23X3YEHA.3128@TK2MSFTNGP09.phx.gbl...
> > > > Hello
> > > >
> > > > Comment faire realiser un vrai moteur de recherche avec le
de
> > SQL
> > > > SERVER?
> > > >
> > > > en fait, j'aimerai que la recherche cherche a l'interieur des mots
> > > > indexés.... BON pourra me rendre BON, BONNE, BONJOUR, JAMBON,.....
(si
> > les
> > > 4
> > > > derniers sont contenus dans des champs indexés...)
> > > >
> > > > pour info voila ma requete de recherche :
> > > >
> > > > SELECT tbl_prod_key.RANK, p.produit_id
> > > > FROM product AS p
> > > > INNER JOIN FREETEXTTABLE (product, *, @prmStr ) AS
tbl_prod_key
> ON
> > > > p.prod_id = tbl_prod_key.[KEY]
> > > > ORDER BY tbl_prod_key.RANK DESC
> > > >
> > > > @prmStr est la requete que je donne .....
> > > >
> > > > voila! merci
> > > > a+
> > > >
> > > > syl
> > > >
> > > >
> > >
> > >
> >
> >
>
>
alors ca! ca fait plaisir!!!!
merci COPAIN!
je vais étudier ca!
a+
et merci encore!
syl
"Laurent Moreau" a écrit dans le
de news:ccj0ls$16n$
> Allez c'est mon jour de bonté, je prend la peine de t'écrire ça:
> Il manque quelques controle, par exemple si la phrase est vide a
> l'origine...
>
>
> Laurent
>
> ---------------------------
> CREATE PROCEDURE [dbo].[nom_proc]
> @Phrase AS VarChar(8000)
> AS
>
> SET NOCOUNT ON
>
> DECLARE @Req AS VarChar(8000)
> DECLARE @PosEspace AS Integer
>
> SET @Phrase=LTRIM(RTRIM(@Phrase)) -- vire les espaces devant et
>
> WHILE CHARINDEX(' ',@Phrase)>0 -- tant qu'il y a des espaces
> BEGIN
> SELECT @PosEspace=CHARINDEX(' ',@Phrase) -- position de l'espace ?
> SET @Req = COALESCE(@Req + ' OR ', '') + 'CONTAINS(*, ''"*' +
LEFT(@Phrase,
> @PosEspace-1)+ '*"'')' -- ajoute OR si la requete n'est pas vide et
> le CONTAINS
> SET @Phrase=SUBSTRING(@Phrase,@PosEspace + 1 ,LEN(@Phrase) -
> PosEspace) -- suite de la phrase apres l'espace
> SET @Phrase=LTRIM(@Phrase) -- vire les espaces devant (pour pas avoir
de
> pb avec les doubles espaces
> END
> SET @Req = COALESCE(@Req + ' OR ', '') + 'CONTAINS(*, ''"*' +
> REPLACE(@Phrase,'''','''''') + '*"'')' -- ajoute OR si la requete n'est
pas
> vide et ajoute le CONTAINS qui reste
>
> SET @Req = 'SELECT * FROM MaTable WHERE ' + @Req -- fabrique le début
> la requete
>
> SET NOCOUNT OFF
>
> -- print @Req -- enlever les commentaires pour debugger
> EXEC(@Req) -- exec de la requete
> ------------------------------
>
>
>
>
>
>
>
>
>
>
>
> "lobrys" wrote in message
> news:
> > merci!
> > effectivement, je peux m'en servir......
> >
> > sauf que ma requete c'est peut etre : "truc joe bidule"
> >
> > faut que je fasse une boucle sur chaque mots dans ma requete SQL?
> > et ajouter les resultats de ta requete dans une table TEMP
> > comment je peux faire ca simplement?
> >
> > a+
> > syl
> >
> >
> >
> > "Laurent Moreau" a écrit dans le
> message
> > de news:ccgi56$qm$
> > > Voir aide en ligne de CONTAINS
> > >
> > > Une requete du genre:
> > >
> > > SELECT * FROM Latable WHERE CONTAINS(*, '"*bon*"')
> > >
> > >
> > > Laurent.
> > >
> > >
> > >
> > >
> > > "lobrys" wrote in message
> > > news:ONEI%
> > > > Hello
> > > >
> > > > Comment faire realiser un vrai moteur de recherche avec le
de
> > SQL
> > > > SERVER?
> > > >
> > > > en fait, j'aimerai que la recherche cherche a l'interieur des mots
> > > > indexés.... BON pourra me rendre BON, BONNE, BONJOUR, JAMBON,.....
(si
> > les
> > > 4
> > > > derniers sont contenus dans des champs indexés...)
> > > >
> > > > pour info voila ma requete de recherche :
> > > >
> > > > SELECT tbl_prod_key.RANK, p.produit_id
> > > > FROM product AS p
> > > > INNER JOIN FREETEXTTABLE (product, *, @prmStr ) AS
tbl_prod_key
> ON
> > > > p.prod_id = tbl_prod_key.[KEY]
> > > > ORDER BY tbl_prod_key.RANK DESC
> > > >
> > > > @prmStr est la requete que je donne .....
> > > >
> > > > voila! merci
> > > > a+
> > > >
> > > > syl
> > > >
> > > >
> > >
> > >
> >
> >
>
>