2009-06-01 2 views
1

Ich möchte mit SQL Server 2005 Express die Top-Five-Tupel im Zusammenhang mit einem Absatz des Textes finden. Ich weiß, dass ich Volltextindizierung und CONTAINSTABLE verwenden kann, um Zeilen zu finden, die eine genaue Phrase enthalten, aber wie bekomme ich es, um den Wörtern in einem Absatz am nächsten zu entsprechen, nicht den genauen Absatz selbst.So suchen Sie nach einer SQl Server-Zeile basierend auf einem Absatz - speziell die Wörter im Absatz, nicht den genauen Absatz

Bisher kann ich mir nur die CONTAINSTABLE-Abfrage aufteilen, indem ich für jedes Leerzeichen "oder" einfüge, eine Abfrage in der folgenden Reihenfolge erzeuge, aber über die Leistung (und Stoppwörter) besorgt bin.

Ich erwarte, dass es eine Standardlösung für dieses Problem gibt - weiß jemand, was es ist?

+0

gut ich weiß nicht, einen besseren Weg, es zu tun, aber ein Problem mit sie Art und Weise der Sie denken, es zu tun ist, dass Sie alle wirklich häufige Wörter wie ist inkl und , meine, etc. – DForck42

+0

Ja, das ist, was ich mit 'Stoppwörter' meinte –

Antwort

2

Haben Sie den FREETEXT und FREETEXTTABLE versucht, die tun sollten, was Sie versuchen zu tun?

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

+1

Ja, das ist genau das, was Sie wollen. FREETEXT/FREETEXTTABLE teilt den Suchtext automatisch in Wörter auf, und das Ranking basiert darauf, wie gut es passt - exakte Phrase rangiert am höchsten, dann alle Wörter usw. – GalacticCowboy

+0

Ahhh - das ist also der Unterschied zwischen FREETEXTTABLE und CONTAINSTABLE! Head-Slap Moment: 0) Vielen Dank. –