sql >> Base de Datos >  >> RDS >> Sqlserver

No se puede usar un predicado CONTAINS o FREETEXT en una tabla o vista indexada porque no está indexada en texto completo

  1. Asegúrese de tener instalada la función de búsqueda de texto completo.

  1. Cree un catálogo de búsqueda de texto completo (si es necesario)

    Primero verifique si ya existe algún catálogo

      select *
      from sys.fulltext_catalogs
    

    Si no se encuentra ningún catálogo, cree uno

      use [DatabaseName]
      create fulltext catalog FullTextCatalog as default
    

    puede verificar que el catálogo se creó de la misma manera que arriba

  2. Crear índice de búsqueda de texto completo.

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

    Antes de crear el índice, asegúrese de:
    - no tener ya un índice de búsqueda de texto completo en la tabla, ya que solo se permite un índice de búsqueda de texto completo en una tabla
    - existe un índice único en la mesa. El índice debe basarse en una columna de clave única, que no permite NULL.
    - Existe un catálogo de texto completo. Debe especificar explícitamente el nombre del catálogo de texto completo si no hay un catálogo de texto completo predeterminado.

Puede realizar los pasos 2 y 3 en SQL Server Management Studio. En el explorador de objetos, haga clic derecho en una tabla, seleccione Full-Text index elemento de menú y luego Define Full-Text Index... elemento del submenú. El asistente de indexación de texto completo lo guiará a través del proceso. También creará un catálogo de búsqueda de texto completo para usted si aún no tiene ninguno.

Puede encontrar más información en MSDN

Después de seguir los pasos, necesita unos minutos para que se cree el índice de búsqueda de texto completo (esto depende del tamaño de los datos de la tabla y la columna)