Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Ein CONTAINS- oder FREETEXT-Prädikat kann nicht für eine Tabelle oder indizierte Ansicht verwendet werden, da sie nicht volltextindiziert ist

  1. Stellen Sie sicher, dass Sie die Volltextsuche installiert haben.

  1. Katalog für Volltextsuche erstellen (falls erforderlich)

    Überprüfen Sie zuerst, ob bereits ein Katalog vorhanden ist

      select *
      from sys.fulltext_catalogs
    

    Wenn kein Katalog gefunden wird, erstellen Sie einen

      use [DatabaseName]
      create fulltext catalog FullTextCatalog as default
    

    Sie können überprüfen, ob der Katalog auf die gleiche Weise wie oben erstellt wurde

  2. Volltextsuchindex erstellen.

      create fulltext index on Production.ProductDescription(Description)
      key index PK_ProductDescription_ProductDescriptionID
    

    Bevor Sie den Index erstellen, vergewissern Sie sich:
    - Sie haben noch keinen Volltextsuchindex für die Tabelle, da nur ein Volltextsuchindex für eine Tabelle zulässig ist
    - es existiert ein eindeutiger Index Die Tabelle. Der Index muss auf einer Einzelschlüsselspalte basieren, die NULL nicht zulässt.
    - Volltextkatalog vorhanden. Sie müssen den Namen des Volltextkatalogs explizit angeben, wenn es keinen Standard-Volltextkatalog gibt.

Sie können Schritt 2 und 3 in SQL Server Management Studio ausführen. Klicken Sie im Objekt-Explorer mit der rechten Maustaste auf eine Tabelle und wählen Sie Full-Text index Menüpunkt und dann Define Full-Text Index... Untermenüpunkt. Der Assistent für die Volltextindizierung führt Sie durch den Vorgang. Es wird auch einen Volltextsuchkatalog für Sie erstellen, falls Sie noch keinen haben.

Weitere Informationen finden Sie unter MSDN

Nachdem Sie die Schritte ausgeführt haben, benötigen Sie einige Minuten, damit der Volltextsuchindex erstellt wird (dies hängt von der Größe der Tabellen- und Spaltendaten ab)