2010-06-03 6 views
1

J'expérimente avec la recherche de texte intégral SQL Server.Recherche de texte intégral ne renvoyant pas les résultats attendus

J'ai une simple table Catégories avec Id comme clé primaire:

CREATE TABLE [dbo].[Category](
[Id] [int] IDENTITY(1,1) NOT NULL, 
[CategoryName] [varchar](100) NOT NULL, 
) 

Ma Recherche est:

SELECT * 
FROM 
FREETEXTTABLE (Category, CategoryName, 'music') AS F 
INNER JOIN Category C ON F.[Key] = C.Id 
ORDER BY F.Rank DESC 

Cela me retourne plusieurs enregistrements avec la musique de mot, mais il ne PAS retourner un enregistrement avec le mot «musical». Bien que, on peut dire que la chaîne recherchée n'est pas très grande et en utilisant l'opérateur LIKE le résoudra. Je voudrais utiliser la recherche fulltext car cet exemple simple va être étendu pour inclure d'autres tables et fichiers.

+0

Dup: http://stackoverflow.com/questions/2716748/mysql- full-text-search-with-partial-words –

+0

Le lien fourni concerne la recherche en texte intégral à l'aide de la base de données MySQL. Ma question concerne la base de données SQL Server. – Puneet

Répondre

1

Si vous voulez correspondre préfixes, vous pouvez utiliser CONTAINSTABLE au lieu de FREETEXTTABLE et inclure un caractère générique sur votre terme de recherche: "la musique *

+0

Selon votre suggestion, j'ai essayé cette requête SELECT * DE CONTAINSTABLE (Catégorie, CategoryName, «la musique *) AS F INNER JOIN Catégorie C ON F. [Key] = C.Id ORDER BY F.Rank DESC Donne le même résultat. Juste le classement est différent – Puneet

+0

Mon mauvais sur la syntaxe. Essayez-le comme '' musique '' '' (c'est des guillemets simples sur l'extérieur, des guillemets doubles sur l'intérieur). –

+0

Cela a fonctionné. Merci beaucoup! – Puneet

Questions connexes