Ich mache eine MS SQL Server Volltextsuche Abfrage. Ich muss Sonderzeichen vermeiden, damit ich nach einem bestimmten Begriff suchen kann, der Sonderzeichen enthält. Gibt es eine integrierte Funktion, um eine Volltextsuchfolge zu umgehen? Wenn nicht, wie würdest du es tun?SQL Server Volltextsuche Escape Characters?
Antwort
Schlechte Nachrichten: Es gibt keinen Weg. Gute Neuigkeiten: Sie brauchen es nicht (da es sowieso nicht hilft).
Ich habe ähnliches Problem auf einem meiner Projekte konfrontiert. Mein Verständnis ist, dass, während Volltextindex erstellen, SQL Server behandelt alle Sonderzeichen als Worttrennzeichen und daher:
- Dein Wort mit einem solchen Charakter als zwei dargestellt (oder mehr) Wörter in Volltextindex.
- Diese Zeichen werden entfernt und erscheinen nicht in einem Index.
Betrachten wir die folgende Tabelle mit einer entsprechenden Volltextindex für sie (die übersprungen):
CREATE TABLE [dbo].[ActicleTable]
(
[Id] int identity(1,1) not null primary key,
[ActicleBody] varchar(max) not null
);
später Betrachten wir fügen Sie Zeilen in die Tabelle:
INSERT INTO [ActicleTable] values ('digitally improvements folders')
INSERT INTO [ActicleTable] values ('digital"ly improve{ments} fold(ers)')
Versuchen Sie zu suchen:
SELECT * FROM [ArticleTable] WHERE CONTAINS(*, 'digitally')
SELECT * FROM [ArticleTable] WHERE CONTAINS(*, 'improvements')
SELECT * FROM [ArticleTable] WHERE CONTAINS(*, 'folders')
und
SELECT * FROM [ArticleTable] WHERE CONTAINS(*, 'digital')
SELECT * FROM [ArticleTable] WHERE CONTAINS(*, 'improve')
SELECT * FROM [ArticleTable] WHERE CONTAINS(*, 'fold')
Die erste Gruppe von Bedingungen entspricht der ersten Zeile (und nicht die zweite), während die zweite Gruppe nur der zweiten Zeile entspricht.
Leider konnte ich keine Verbindung zu MSDN (oder etwas) finden, wo solches Verhalten eindeutig angegeben wird. Aber ich habe eine official article gefunden, die erklärt, wie Anführungszeichen für Volltext-Suchabfragen zu konvertieren, die [implizit] mit dem oben beschriebenen Algorithmus ausgerichtet ist.
- 1. Ranking der Volltextsuche (SQL Server)
- 2. SQL Server Volltextsuche sehr langsam
- 3. Volltextsuche mit SQL-Server 2008
- 4. SQL Server 2008 Volltextsuche Ergebnisse
- 5. SQL Server Volltextsuche und Leerzeichen
- 6. SQL Server Escape ein Underscore
- 7. SQL-Volltextsuche
- 8. Wie Volltextsuche auf SQL Server 2008
- 9. Geräuschwörter in Sql Server 2005 Volltextsuche
- 10. SQL Server Volltextsuche mit nordischen Zeichen
- 11. SQL Server-LOB-Datenkomprimierung und Volltextsuche
- 12. SQL Server Volltextsuche FREETEXTTABLE Suche mehrere Spalten
- 13. Fremd Flexion Verhalten in SQL Server-Volltextsuche
- 14. Volltextsuche in SQL Server 2005/2008
- 15. SQL Server Volltextsuche und Suche Spalte
- 16. SQL Server-Volltextsuche nicht unterstützt 'für' Schlüsselwort
- 17. T-SQL Escape-Anführungszeichen
- 18. SQL-Volltextsuche vs "LIKE"
- 19. SQl Volltextsuche funktioniert nicht?
- 20. Elasticsearch vs SQL Volltextsuche
- 21. Volltextsuche in SQL Azure
- 22. SQL-Volltextsuche Index Binärfeld
- 23. Escape-Strings für die Verwendung in MySQL Volltextsuche
- 24. Brauchen Sie Hilfe mit Sql Server 2008 und Volltextsuche
- 25. Sql Server Volltextsuche - Word-Ereignisse/Ort im Text bekommen?
- 26. Volltextsuche für mehrere Tabellen in SQl Server 2005
- 27. Aktivieren der Volltextsuche in SQL Server 2008 Express
- 28. Verwenden der Volltextsuche, um Teilwörter zu finden (SQL Server 2008)
- 29. Query SQl Server 2005 Volltextsuche noise/stop words
- 30. Verwenden der Volltextsuche mit PDF-Dateien in SQL Server 2005