Hat jemand eine gute Möglichkeit gefunden, Volltextsuchen (FREETEXT() CONTAINS()
) für eine beliebige Anzahl von Stichwörtern mit der Standard LinqToSql-Abfragesyntax durchzuführen?LinqToSql und Volltextsuche - kann es getan werden?
Ich möchte natürlich vermeiden, einen Stored Proc zu verwenden oder eine Dynamic SQL-Aufrufe generieren müssen.
Offensichtlich konnte ich die Pumpe nur die Suchzeichenfolge in auf einem Parameter zu einem SPROC die FREETEXT-() verwendet, oder ENTHÄLT(), aber ich hatte gehofft, mehr Kreativität bei der Suche zu sein und aufzubauen Anfragen wie:
"Peperoni Pizza" und Burger, nicht "Apfelkuchen".
Verrückt ich weiß - aber wäre es nicht nett, in der Lage zu sein, dies direkt von LinqToSql zu tun? Irgendwelche Tipps, um dies zu erreichen, würden sehr geschätzt werden.
Update: Ich denke, ich auf etwas here ...
auch sein mag: Ich habe die Änderung auf meine Frage Titel gemacht rückgängig gemacht, weil es tatsächlich die Bedeutung geändert, was ich frage. I wissen, dass die Volltextsuche in LinqToSql nicht unterstützt wird - ich hätte diese Frage gestellt, wenn ich das wissen wollte. Stattdessen - Ich habe meinen Titel aktualisiert, um die Edit-Happy-Trigger-Fingered Massen zu beschwichtigen.
Hey Jon, danke dafür. Ich bin glücklich mit Ihrer Antwort im Prinzip und bin mir bewusst, dass ich eine weitere Ebene der Abstraktion hinzufügen könnte. Nicht ideal, dass Sie auch die CONTAINS() SPROC schreiben und Linq für alles andere verwenden können. Meine Frage ist "Kann es mit Linq gemacht werden"? Wenn nicht, dann reicht Ihre Antwort aus. – RobertTheGrey
Ich habe mich dazu entschlossen, Lucene.NET zu verwenden und es funktioniert wirklich gut. Jetzt muss ich nur Memcached laufen lassen und ich werde kaum auf die DB treffen müssen ;-) – RobertTheGrey