sql >> Database teknologi >  >> RDS >> Sqlserver

Kan ikke bruge et CONTAINS eller FREETEXT prædikat på tabel eller indekseret visning, fordi det ikke er fuldtekstindekseret

  1. Sørg for, at du har fuldtekstsøgefunktionen installeret.

  1. Opret fuldtekstsøgekatalog (hvis nødvendigt)

    Tjek først, om der allerede findes et katalog

      select *
      from sys.fulltext_catalogs
    

    Hvis der ikke findes noget katalog, skal du oprette et

      use [DatabaseName]
      create fulltext catalog FullTextCatalog as default
    

    du kan verificere, at kataloget blev oprettet på samme måde som ovenfor

  2. Opret søgeindeks i fuld tekst.

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

    Før du opretter indekset, skal du sørge for:
    - du ikke allerede har fuldtekst søgeindeks på tabellen, da kun ét fuldtekst søgeindeks er tilladt på en tabel
    - et unikt indeks findes på bordet. Indekset skal være baseret på enkelt-nøgle kolonne, som ikke tillader NULL.
    - fuldtekstkatalog eksisterer. Du skal angive et fuldtekstkatalognavn eksplicit, hvis der ikke er et standardfuldtekstkatalog.

Du kan udføre trin 2 og 3 i SQL Server Management Studio. I objektudforsker skal du højreklikke på en tabel, vælge Full-Text index menupunkt og derefter Define Full-Text Index... undermenupunkt. Guiden til indeksering af fuld tekst vil guide dig gennem processen. Det vil også oprette et fuldtekstsøgningskatalog til dig, hvis du ikke har noget endnu.

Du kan finde mere information på MSDN

Efter at have fulgt trinene har du brug for et par minutter, så fuldtekstsøgningsindekset er oprettet (dette afhænger af størrelsen af ​​tabellen og kolonnedataene)



  1. Formatering af tal ved at udfylde med indledende nuller i SQL Server

  2. Hvordan vælger man kun 1 række fra oracle sql?

  3. ORA-22905 - når du forespørger en tabeltype med en select-sætning

  4. SQL NOT IN virker ikke