1

Je voudrais lancer une recherche avec MSSQL moteur plein texte où étant donné l'entrée utilisateur suivant: « carré Hollywood »La meilleure façon de mettre en œuvre une procédure stockée avec recherche en texte intégral

Je veux que les résultats ont à la fois Hollywood et carré [s] en eux.

je peux créer une méthode sur le serveur Web (C#, ASP.NET) pour produire dynamiquement une instruction SQL comme ceci:

SELECT TITLE 
FROM MOVIES 
WHERE CONTAINS(TITLE,'"hollywood*"') 
AND CONTAINS(TITLE, '"square*"') 

assez facile. Cependant, je voudrais dans une procédure stockée pour plus de rapidité et de sécurité pour l'ajout de paramètres. Puis-je avoir mon gâteau et le manger aussi?

+0

Un tel SQL dynamique ne produira probablement pas de gain de vitesse dans une procédure stockée. Les procédures stockées sont excellentes lorsque le plan d'exécution reste le même, mais vous en concevez un qui va changer - cela entraînera des recompilations sp. –

+0

J'ai demandé dans l'espoir qu'il y avait une petite, pas si bien documentée façon de le faire. Merci pour votre temps, –

Répondre

0

je d'accord avec ci-dessus, se pencher sur les clauses et

SELECT TITLE 
FROM MOVIES 
WHERE CONTAINS(TITLE,'"hollywood*" AND "square*"') 

Cependant, vous ne devriez pas avoir à diviser les phrases d'entrée, vous pouvez utiliser la variable

SELECT TITLE 
FROM MOVIES 
WHERE CONTAINS(TITLE,@parameter) 

par la façon chercher le terme exact (contient) chercher un terme dans la phrase (texte sans fin)

+1

J'ai utilisé GoogleFTS (http://www.sqlservercentral.com/articles/Full-Text+Search+(2008)/64248/) [vous devrez peut-être vous inscrire]. Il faut que vos termes et formats de recherche utilisent le '@parameter' comme google, mais en utilisant les commandes T-SQL du serveur SQL. Merci à tous pour votre temps. –

0

La dernière fois que j'ai dû faire cela (avec MSSQL Server 2005), j'ai fini par déplacer toute la fonctionnalité de recherche vers Lucene (la version Java, bien que Lucene.Net existe maintenant je crois). J'avais de grands espoirs de la recherche en texte intégral, mais ce problème spécifique m'a tellement ennuyé que j'ai abandonné.

+0

Je suis allé avec Google FTS parce que la langue de recherche google est si omniprésente, il semblait juste naturel. La vitesse n'est pas trop mauvaise non plus. –

Questions connexes