Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Não é possível usar um predicado CONTAINS ou FREETEXT na tabela ou exibição indexada porque não é indexado em texto completo

  1. Certifique-se de ter o recurso de pesquisa de texto completo instalado.



  1. Crie um catálogo de pesquisa de texto completo (se necessário)

    Primeiro verifique se já existe algum catálogo
      select *
      from sys.fulltext_catalogs
    

    Se nenhum catálogo for encontrado, crie um
      use [DatabaseName]
      create fulltext catalog FullTextCatalog as default
    

    você pode verificar se o catálogo foi criado da mesma forma acima

  2. Crie um índice de pesquisa de texto completo.
      create fulltext index on Production.ProductDescription(Description)
      key index PK_ProductDescription_ProductDescriptionID
    

    Antes de criar o índice, certifique-se de que:
    - você ainda não tem índice de pesquisa de texto completo na tabela, pois apenas um índice de pesquisa de texto completo é permitido em uma tabela
    - existe um índice exclusivo em a mesa. O índice deve ser baseado em coluna de chave única, que não permite NULL.
    - existe um catálogo de texto completo. Você precisa especificar o nome do catálogo de texto completo explicitamente se não houver um catálogo de texto completo padrão.

Você pode executar as etapas 2 e 3 no SQL Server Management Studio. No explorador de objetos, clique com o botão direito em uma tabela, selecione Full-Text index item de menu e, em seguida, Define Full-Text Index... item do submenu. O assistente de indexação de texto completo o guiará pelo processo. Ele também criará um catálogo de pesquisa de texto completo para você, caso ainda não tenha nenhum.



Você pode encontrar mais informações no MSDN

Após seguir os passos, você precisa de alguns minutos para que o índice de pesquisa de texto completo seja criado (isso depende do tamanho da tabela e dos dados da coluna)