Frage

Ich möchte eine Suche mit MSSQL Volltext-Engine laufen, wo die folgenden Benutzereingabe gegeben: "Hollywood square"

Ich möchte die Ergebnisse sowohl Hollywood und Platz [s] in ihnen haben.

kann ich eine Methode auf dem Web-Server (C #, ASP.NET) erstellen, um dynamisch eine SQL-Anweisung wie folgt zu erzeugen:

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

Einfach genug. Allerdings würde ich dies in einer gespeicherten Prozedur wie für zusätzliche Geschwindigkeit Nutzen und Sicherheit für Parameter angeben kann.

Kann ich meinen Kuchen und essen es auch?

War es hilfreich?

Lösung

ich mit oben vereinbart, schauen und Klauseln

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

Allerdings sollten Sie nicht den Eingang Sätze geteilt haben, können Sie Variable verwenden

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

durch die Art und Weise Suche nach dem genauen Wortlaut (enthält) suchen Sie nach einem Begriff in der Phrase (Freitext)

Andere Tipps

Das letzte Mal hatte ich, dies zu tun (mit MSSQL Server 2005) beendete ich die ganze Suchfunktion über Lucene nach oben bewegt (die Java-Version, obwohl Lucene.Net jetzt existiert glaube ich). Ich hatte große Hoffnungen auf die Volltextsuche, aber dieses spezielle Problem ärgerte mich so sehr ich gab auf.

Haben Sie versucht, den logischen Operator in der Zeichenfolge verwendet? Ich gehe in einem rohen String meine sproc und Sachen ‚UND‘ zwischen den Worten.

http://msdn.microsoft.com/en-us/library /ms187787.aspx

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top