Separadores de palavras e lematizadores

Os separadores de palavras e os lematizadores executam a análise linguística em todos os dados indexados de texto completo. A análise linguística envolve a localização dos limites das palavras (separação de palavras) e a conjugação de verbos (lematização). Os separadores de palavras e os lematizadores são específicos de idioma, e as regras de análise linguística diferem conforme o idioma. Para um determinado idioma, um separador de palavras identifica palavras individuais determinando onde existem limites de palavra com base nas regras lexicais do idioma. Cada palavra (também chamada de token) é inserida no índice de texto completo usando uma representação compactada para reduzir seu tamanho. O lematizador gera formas flexionadas de uma palavra específica com base nas regras do idioma (por exemplo, "executando", "executou" e "executor" são várias formas da palavra "executar").

O uso de separadores de palavras específicos de idioma permite que os termos resultantes sejam mais precisos para o idioma em questão. Se houver um separador de palavras para uma família de idiomas, mas não para um subidioma em particular, será usado o idioma principal. Por exemplo, o separador de palavras Francês é usado para tratar o texto em francês (Canadá). Se não houver um separador de palavras disponível para um determinado idioma, será usado o separador de palavras neutro. Com ele, a separação das palavras é feita nos caracteres neutros, como espaços e marcas de pontuação.

Registro de separadores de palavras

Para que os separadores de palavras de um idioma possam ser usados, é necessário registrá-los. Nos separadores de palavras registrados, os recursos associados, como lematizadores, palavras de ruído (palavras irrelevantes) e arquivos de dicionário de sinônimos, também ficam disponíveis para operações de indexação e consulta de texto completo. Para exibir uma lista dos idiomas cujos separadores de palavras estão registrados no SQL Server, use a seguinte instrução Transact-SQL:

SELECT * FROM sys.fulltext_languages

Se você adicionar, remover ou alterar um separador de palavras, precisará atualizar a lista de LCIDs (IDs de localidade) do Microsoft Windows que são suportadas para indexação e consulta de texto completo. Para obter mais informações, consulte Como alterar a lista de separadores de palavras e filtros registrados (Transact-SQL).

Vários separadores de palavras de terceiros licenciados são fornecidos com o SQL Server 2008. Você pode carregar separadores de palavras de terceiros (e lematizadores) manualmente adicionais para vários idiomas (dinamarquês, polonês e turco). Esses separadores de palavras não são habilitados por padrão, pois pertencem a terceiros que ainda não forneceram o nível de teste, segurança e robustez necessário para que sejam habilitados por padrão. Para obter mais informações, consulte Como carregar separadores de palavras de terceiros licenciados.

Opção de idioma de texto completo

Em uma versão localizada do SQL Server, a instalação do SQL Server configura a opção idioma de texto completo padrão como o idioma do servidor caso exista uma correspondência adequada. Para uma versão não localizada do SQL Server, a opção default full-text language fica em inglês.

Quando criar ou alterar um índice de texto completo, você pode especificar um idioma diferente para cada coluna indexada de texto completo. Se nenhum idioma for especificado para uma coluna, o padrão será o valor da opção de configuração default full-text language.

Para obter mais informações, consulte Opção default full-text language.

ObservaçãoObservação

Todas as colunas listadas em uma única cláusula de função de consulta de texto completo devem usar o mesmo idioma, exceto se a opção LANGUAGE for especificada na consulta. O idioma usado para a coluna indexada de texto completo que está sendo consultada determina a análise linguística realizada nos argumentos dos predicados de consulta de texto completo (CONTAINS e FREETEXT) e das funções (CONTAINSTABLE e FREETEXTTABLE).

Escolhendo um idioma ao criar o índice de texto completo de uma coluna

Quando você cria um índice de texto completo, é recomendável especificar um idioma para cada coluna indexada. Se não for especificado um idioma para uma coluna, será usado o idioma padrão do sistema. O idioma de uma coluna determina que separador de palavras e que lematizador são usados para indexá-la. Além disso, o arquivo do dicionário de sinônimos do idioma será usado por consultas de texto completo na coluna.

Existem alguns aspectos que devem ser considerados na escolha do idioma da coluna para criar um índice de texto completo. Essas considerações estão relacionadas a como seu texto é transformado em token e, depois, indexado pelo Mecanismo de Texto Completo. Para obter mais informações, consulte Práticas recomendadas para escolher um idioma ao criar um índice de texto completo.

Para exibir o idioma do separador de palavras de uma coluna

Impacto dos novos separadores de palavras do SQL Server 2008

O SQL Server 2008 inclui separadores de palavras para mais de 50 idiomas diferentes, dos quais 23 também existem no SQL Server 2005. Somente os separadores de palavras para inglês, coreano, tailandês e chinês (todas as formas) permanecem os mesmos. Para outros idiomas, o SQL Server 2008 introduz uma nova geração de separadores de palavras que possuem regras linguísticas melhores e mais precisas do que os separadores de palavras anteriores. O comportamento dos novos separadores de palavras pode ser ligeiramente diferente daquele dos separadores de palavras em índices de texto completo do SQL Server 2005 importados. Isso é significativo se um catálogo de texto completo foi importado durante a atualização de um banco de dados do SQL Server 2005 para o SQL Server 2008. Agora um ou mais dos idiomas usados pelos índices de texto completo no catálogo de texto completo podem ser associados aos novos separadores de palavras. Para obter mais informações, consulte Atualização da pesquisa de texto completo.

Versões de separadores de palavras em idiomas suportados no SQL Server 2005

Somente os separadores de palavras para inglês, coreano, tailandês e chinês (todas as formas) permanecem os mesmos. A tabela a seguir lista os separadores de palavras que existiam no SQL Server 2005 e indica se eles foram atualizados no SQL Server 2008. Para ver uma lista completa de todos os separadores de palavras do SQL Server 2008, consulte sys.fulltext_languages (Transact-SQL).

ObservaçãoObservação

Os separadores de palavras da maioria dos idiomas são registrados por padrão. No entanto, vários separadores de palavras de terceiros licenciados ficam desabilitados por padrão. Para obter informações sobre esses idiomas e como registrar esses separadores de palavras, consulte Como carregar separadores de palavras de terceiros licenciados.

Idioma

LCID

Separadores de palavras

Português (Brasil)

1046

Novo

Chinês (RAE de Hong Kong, RPC)

3076

Inalterado

Chinês (RAE de Macau)

5124

Inalterado

Chinês (Cingapura)

4100

Inalterado

Dinamarquês (desabilitado por padrão)

1030

Inalterado

Holandês

1043

Novo

Inglês

1033

Inalterado

Inglês (Reino Unido)

2057

Inalterado

Francês

1036

Novo

Alemão

1031

Novo

Italiano

1040

Novo

Japonês

1041

Novo

Coreano

1042

Inalterado

Neutro

0

Novo

Polonês (desabilitado por padrão)

1045

Inalterado

Português

2070

Novo

Russo

1049

Novo

Chinês simplificado

2052

Inalterado

Espanhol

3082

Novo

Sueco

1053

Novo

Tailandês

1054

Inalterado

Chinês tradicional

1028

Inalterado

Turco (desabilitado por padrão)

1055

Inalterado

Para obter uma lista completa dos idiomas suportados, consulte sys.fulltext_languages (Transact-SQL).

Erros de tempo limite na separação de palavras

Um erro de tempo limite na separação de palavras pode ocorrer em diversas situações. Para obter informações sobre estas situações e o que fazer em cada uma delas, consulte MSSQLSERVER_30053.

Obtendo informações sobre separadores de palavras

Exibindo o resultado da geração de tokens de uma combinação de separador de palavras, dicionário de sinônimos e lista de palavras irrelevantes (stoplist)

Para retornar informações sobre os separadores de palavras registrados