2009-02-26 5 views
4

Ich experimentiere mit einer Idee mit der Volltextindizierung von SQL Server. Es scheint perfekt für die Aufgabe, aber was mein Kunde will, ist eine sehr Google-ähnliche Zusammenfassung der Ergebnisse, wo die Ergebnisse zeigen einen Auszug aus dem Text um ihren Suchbegriff.Wie konnte ich einen Kontexttextextrakt aus Text generieren, der von einem SQL Server-Volltextindex zurückgegeben wurde?

Wenn ich für "Haus" zu suchen ...

My House Is a Very, Very, Very Fine House
... Dank für das Kommen unseres Haus heute zu besuchen ... nicht Sie dieses Haus .. .hey, warum setzen Sie Feuer auf mein Haus? ...

Dies ist nicht zu hart, wenn ihre Suchbegriff eine genaue Übereinstimmung für ist, was die Suchtreffer auf. Sie können einfach den Text mühsam analysieren, um den Extrakt zu generieren.

Aber was passiert mit Flexion und Stemming? Wenn ich nach "walk" suche, kann die Abfrage auf "walking", "walked" usw. tippen. Ich müsste genau wissen was Wort innerhalb des Suchergebnisses es trifft, so dass ich wissen würde, woher ich meine Basis Extraktion.

Dieser Bereich scheint reif für einige kommerzielle Produkt-Add-on, oder vielleicht gibt es eine elegante Art, es zu tun, die ich nicht in Betracht ziehe?

(Und ja, sind wir uns bewusst von der GSA und der Google Mini. Es gibt einige subtile Gründe, warum sie möglicherweise nicht in diesem Fall arbeiten, so dass wir versuchen, SQL FTI zuerst.)

+0

Haben Sie jemals eine Lösung gefunden? Problem? – jimmystormig

Antwort

1

Wenn mit SQL 2008, ich denke, Sie könnten den sys.dm_fts_parser verwenden - senden Sie Ihre endgültige Suche Zeichenfolge (mit einem beliebigen FORMSOF usw. hinzugefügt). Dies wird eine Liste von Wörtern zurückgeben, die Sie dann verwenden können, um Text auf Ihrer Seite hervorzuheben (mit einem jquery-Plugin für die Hervorhebung, alle Wörter, die nicht gefunden werden)

Verwandte Themen