Est-ce que quelqu'un a trouvé un bon moyen d'effectuer des recherches de texte intégral (FREETEXT() CONTAINS()
) pour n'importe quel nombre de mots-clés arbitraires en utilisant la syntaxe de requête LinqToSql standard?LinqToSql et recherche de texte intégral - est-ce possible?
Je voudrais évidemment éviter d'avoir à utiliser un processus stocké ou devoir générer un appel SQL dynamique.
Il est évident que je pourrais simplement pomper la chaîne de recherche sur un paramètre à une procédure stockée qui utilise FREETEXT() ou contains(), mais j'espérais être plus créatif avec la recherche et de construire des requêtes telles que:
"pizza au pepperoni" et burger, pas "tarte aux pommes". Fou je sais - mais ne serait-il pas propre d'être en mesure de le faire directement à partir de LinqToSql? Tous les conseils sur la façon d'y parvenir seraient très appréciés.
Mise à jour: Je pense que je peux être à quelque chose here ...
aussi: Je révulsés la modification apportée à mon titre de la question, car il réellement changé le sens de ce que je demandais. I sais que la recherche en texte intégral n'est pas supportée par LinqToSql - j'aurais posé cette question si je voulais savoir cela. Au lieu de cela, j'ai mis à jour mon titre pour apaiser les masses edit-happy-trigger-fingered.
Hey Jon, merci pour cela. Je suis heureux de votre réponse en principe et je suis conscient que je pourrais ajouter une autre couche d'abstraction. Pas idéal - écrire aussi CONTAINS() SPROC et utiliser Linq pour chaque signe. Ma question est "Peut-on utiliser Linq"? Si non, alors votre réponse suffira. – RobertTheGrey
J'ai décidé d'utiliser Lucene.NET pour ça maintenant et ça marche plutôt bien. Maintenant j'ai juste besoin de faire fonctionner Memcached et je n'aurai presque plus besoin de cliquer sur la BD ;-) – RobertTheGrey