Freigeben über


Striche "-" in der Suche mit SQL Full-Text- und MSIDXS-Abfragen ignoriert

In diesem Artikel können Sie das Problem umgehen, das auftritt, wenn Sie eine Volltextsuche für SQL Server-Zeichendaten ausführen oder eine SQL-verteilte Abfrage mit dem Microsoft Index Server OLE DB-Anbieter (MSIDXS) und eine Präfixerweiterungssuche nach einem zusammengesetzten Wort verwenden, das einen Bindestrich enthält (z. B. XYZ-A*).

Gilt für: SQL Server
Ursprüngliche KB-Nummer: 200043

Problembeschreibung

Beim Ausführen einer Volltextsuche in SQL Server-Zeichendaten oder bei Verwendung einer verteilten SQL-Abfrage mit dem Microsoft Index Server OLE DB-Anbieter (MSIDXS) und einer Präfixerweiterungssuche nach einem zusammengesetzten Wort, das einen Bindestrich (z. B. "XYZ-A*") enthält, sind die erzeugten Ergebnisse möglicherweise nicht wie erwartet.

Ursache

Bei einer Volltextsuche wird ein Wort als Zeichenfolge ohne Leerzeichen oder Interpunktion betrachtet. Das Vorkommen eines nicht alphanumerischen Zeichens kann während einer Suche ein Wort unterbrechen. Da die Volltextsuche in SQL Server ein wortbasiertes Modul ist, wird die Interpunktion im Allgemeinen nicht berücksichtigt und beim Durchsuchen des Indexes ignoriert. Daher würde eine CONTAINS Klausel wie CONTAINS(testing, "computer-failure") eine Zeile mit dem Wert übereinstimmen, der Fehler beim Auffinden meines Computers wäre teuer.

Problemumgehung

Um dieses Problem zu umgehen, probieren Sie eine der folgenden Methoden aus:

  • Verwenden Sie alphanumerische Zeichen nur bei Verwendung der SQL Server-Volltextindexeinrichtungen.

  • Wenn nicht alphanumerisches Zeichen in den Suchkriterien verwendet werden muss (in erster Linie das Gedankenstrichzeichen - ), verwenden Sie die Transact-SQL-Klausel LIKE anstelle der FULLTEXT Prädikate CONTAINS .

Weitere Informationen

Microsoft SQL Server, Version 7.0, bietet die Möglichkeit, eine Volltextabfrage für Zeichendaten auszuführen, die in SQL Server-Tabellen gespeichert sind. Sie können auch eine verteilte SQL-Abfrage mit dem MSIDXS-Anbieter verwenden, um nach Dateisystemdaten zu suchen. Die Verwendung des Gedankenstrichs (-) in einer Näherungssuche wird nicht unterstützt und kann unerwartete Ergebnisse liefern.

References

  • Weitere Informationen zur Volltextsuche in SQL Server finden Sie in den SQL Server-Onlinebüchern.

  • Weitere Informationen zur Verwendung der CONTAINS-Klausel mit dem Microsoft Index Server (MSIDXS)-Anbieter finden Sie in der Dokumentation zum Indexserver in der Dokumentation zu Windows NT 4.0 Option Pack.