2009-07-29 4 views
0

Ich benutze MSSQLs Volltextindizierung auf einer Handvoll Tabellen in meinem CMS und bin leider mit SQL Server 2000 festgefahren. Ich frage den Index mit freetextable Joins und habe ziemlich gute Ergebnisse, aber wir haben einige eindeutige Begriffe, die sind wahrscheinlich Suchanfragen, die nicht zu stempeln scheinen. Zum Beispiel gibt eine Abfrage mit dem Begriff "Smartbar" ein paar Zeilen zurück, aber eine mit "Smartbars" gibt eine andere, nur teilweise überlappende Ergebnismenge zurück.Führen Sie MS SQL Server 2000-Volltextindexabfragen mithilfe von freutextable using stemming aus?

Wenn ich das Stemming-Konzept richtig verstehe, würde ich annehmen, dass die erste Abfrage alle Zeilen in der zweiten Abfrage enthalten würde, aber es nicht.

Mit Blick auf MSDN-Onlinedokumentation erwähnt this page Stemming in der freetext_string Parameter Kommentare, aber this page nicht. Davon ausgehend würde ich annehmen, dass SQL Server 2000 die Wörter in der Freetexttable-Abfrage nicht abstößt; Ist das eine korrekte Annahme? Gibt es eine Möglichkeit, SQL Server 2000 zu ermutigen oder zu aktivieren, um einzudämmen? Als Rückfall werde ich wahrscheinlich die Thesaurus-Dateien für wichtige Abfragen nach unseren einzigartigen Begriffen verwenden, aber SQL Server sollte den Großteil der Arbeit übernehmen.

Als Follow-up, wenn jemand Links zu guten Ressourcen in Bezug auf SQL Server 2000 Volltext-Abfragen hat, würde ich sie sehr schätzen. Die MSDN-Informationen sind nützlich, aber ich würde gerne detailliertere Informationen erhalten und nicht viel finden können.

Antwort

1

Ich denke, was Sie suchen, ist ein bisschen anders. Sie möchten nach allen Formularen des Wortes suchen. Es hat eine Beziehung zu stemming, aber in MS SQL Server Volltextsuche bekommen Sie das Ergebnis ein wenig anders. Sie müssen den Server explizit anweisen, nach allen Formen des Wortes und nicht nur nach dem Wort selbst zu suchen.

Hier ist, wie dies zu tun:

SELECT <select list> 
FROM [YourTable] 
WHERE CONTAINS(*, 'FORMSOF (INFLECTIONAL, smartbar)') 

Es zu diesem Thema ein article in MSDN ist. Laut anderen Ressourcen war diese Funktion auch in SQL 2k verfügbar (aber ich habe keine Instanz zur Überprüfung).

+0

ausgezeichnet, danke dafür. Ich werde es überprüfen und sehen, ob es hilft, die zusätzlichen Formulare zu finden. – cori

+0

Ich konnte dies auf unseren Daten nicht testen - die Benutzer hatten die Daten bereinigt, bevor ich es versuchen konnte, aber basierend auf diesem [http://msdn.microsoft.com/en-us/library/ms142509 (SQL.90) .aspx] Ich glaube, das hätte es nicht behoben, denn "Smartbar" ist kein anerkanntes englisches Wort, und stemming (und ich denke, durch Wortformen von Erweiterungen) funktioniert gegen ein bekanntes Wörterbuch. Ich denke, wir werden den Thesaurus verwenden, was nicht wirklich unangemessen ist, da wir proprietäre Begriffe betrachten. – cori

+0

Wenn Sie diese Flexibilität wünschen, sollten Sie sich Apache Solr ansehen (ein Suchserver, der auf dem Volltextindex von Apache Lucene basiert). – AlexS

Verwandte Themen