Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Banco de Dados SQL do Azure
Instância Gerenciada de SQL do Azure
Os separadores de palavras e os lematizadores executam a análise linguística em todos os dados indexados de texto completo. Análise linguística faz as duas coisas a seguir:
Localizar os limites de palavra (separação de palavras). O separador de palavras identifica palavras individuais determinando em que existem limites de palavra com base nas regras lexicais do idioma. Cada palavra (também conhecida como token) é inserida no índice de texto completo usando uma representação compactada para reduzir seu tamanho.
Conjugar verbos (lematização). 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”).
Os separadores de palavras e os lematizadores são específicos do idioma
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. Separadores de palavras específicos a um idioma tornam os termos resultantes mais precisos para esse idioma.
Para usar os separadores de palavras e lematizadores fornecidos para todos os idiomas aos quais o Mecanismo de Banco de Dados do SQL Server dá suporte, normalmente não é necessário tomar nenhuma providência.
Onde há um separador de palavras para a família de idiomas, mas não para a sublíngua específica, o idioma principal é usado. Por exemplo, o segmentador de palavras em francês é usado para processar texto em francês canadense.
Se não houver um separador de palavras disponível para um determinado idioma, será usado o separador de palavras neutro. Com o separador de palavras neutro, as palavras são separadas em caracteres neutros, como espaços e sinais de pontuação.
Obter uma lista dos idiomas com suporte
Para ver a lista de linguagens suportadas pelo Full-Text Search, use a seguinte Transact-SQL instrução. A presença de um idioma nesta lista indica que há separadores de palavras registrados para esse idioma.
SELECT *
FROM sys.fulltext_languages;
Obter a lista de divisores de palavras registrados
Para que a Pesquisa de Texto Completo use os separadores de palavras de um idioma, eles devem ser registrados. Para quebradores de palavras registrados, recursos linguísticos associados também ficam disponíveis para operações de indexação e consulta em texto completo. Esses recursos incluem lematizadores, palavras de ruído (stopwords) e arquivos de dicionário de sinônimos.
Para ver a lista de componentes do separador de palavras registrados, use a instrução a seguir.
EXECUTE sp_help_fulltext_system_components 'wordbreaker';
GO
Para obter mais informações, consulte sp_help_fulltext_system_components.
Se você adicionar ou remover um separador de palavras
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 Personalizar filtros e separadores de palavras.
Definir a opção de idioma de texto completo padrão
Em uma versão localizada do SQL Server, a Instalação do SQL Server configura a opção idioma de texto completo padrão com o idioma do servidor caso exista uma correspondência apropriada. Para uma versão não localizada do SQL Server, a opção idioma de texto completo padrão estará em inglês.
Ao criar ou alterar um índice de texto completo, é possível 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 idioma de pesquisa de texto completo.
Observação
Todas as colunas listadas em uma única cláusula de função de consulta de texto completo devem usar o mesmo idioma, a menos que a opção LANGUAGE seja 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).
Escolher o idioma de uma coluna indexada
Ao criar um índice em texto completo, especifique uma linguagem para cada coluna indexada. Se um idioma não for especificado para uma coluna, o idioma padrão do sistema será usado. 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 é 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 mais informações, veja Escolha uma linguagem ao criar um índice em texto completo.
Para exibir o idioma do separador de palavras de colunas específicas, execute a seguinte instrução.
SELECT language_id AS 'LCID'
FROM sys.fulltext_index_columns;
Para obter mais informações, consulte sys.fulltext_index_columns.
Solucionar problemas de erros de tempo limite na separação de palavras
Um erro de tempo limite na separação de palavras pode ocorrer em várias situações. Para obter informações sobre essas situações e como responder em cada situação, consulte MSSQLSERVER_30053.
Informações sobre o erro MSSQLSERVER_30053
| Propriedade | Valor |
|---|---|
| Nome do produto | SQL Server |
| ID do evento | 30053 |
| Origem do Evento | MSSQLSERVER |
| Componente | SQLEngine |
| Nome simbólico | FTXT_QUERY_E_WORDBREAKINGTIMEOUT |
| Texto da mensagem | Foi atingido o tempo limite de quebra de palavras para a cadeia de consulta de texto completo. Isso pode acontecer se o wordbreaker tiver levado muito tempo para processar a cadeia de caracteres da consulta de texto completo ou se um grande número de consultas estiver em execução no servidor. Tente executar a consulta novamente com uma carga mais leve. |
Explicação
Um erro de tempo limite na separação de palavras pode ocorrer nas seguintes situações:
O separador de palavras para o idioma da consulta está configurado incorretamente. Por exemplo, as configurações do registro estão incorretas.
O separador de palavras funciona incorretamente em uma cadeia de consulta específica.
O separador de palavras retorna uma quantidade excessiva de dados para uma cadeia de consulta específica. O excesso de dados é tratado como um ataque de estouro de buffer em potencial e desliga o processo de daemon de filtro (
fdhost.exe) que hospeda os serviços de separação de palavras.A configuração do daemon de filtro está incorreta.
A maior parte dos problemas comuns de configuração são vencimento de senha ou uma política de domínio que impede que a conta do daemon do filtro faça o logon.
Uma carga de trabalho de consulta muito pesada está em execução na instância do servidor. Por exemplo, o quebrador de palavras demorava muito para processar a sequência de consulta em texto completo, ou um grande número de consultas estava rodando no servidor. Essa é a causa menos provável.
Ação do usuário
Selecione a ação do usuário apropriada à causa provável do tempo limite, da seguinte maneira:
| Causa provável | Ação do usuário |
|---|---|
| O separador de palavras para o idioma da consulta está configurado incorretamente. | Se você estiver usando um separador de palavras de terceiros, ele poderá ser registrado incorretamente com o sistema operacional. Nesse caso, registre novamente o separador de palavras. Para obter mais informações, consulte Restaurar os separadores de palavras usados pela Pesquisa de Texto Completo para a versão anterior. |
| O separador de palavras funciona incorretamente em uma cadeia de consulta específica. | Se o quebrador de palavras for suportado pelo Mecanismo de Banco de Dados, entre em contato com o Serviço de Suporte e Atendimento ao Cliente Microsoft. |
| O separador de palavras retorna uma quantidade excessiva de dados para uma cadeia de consulta específica. | Se o quebrador de palavras for suportado pelo Mecanismo de Banco de Dados, entre em contato com o Serviço de Suporte e Atendimento ao Cliente Microsoft. |
| A configuração do daemon de filtro está incorreta. | Verifique se você está usando a senha atual e se uma política de domínio não está impedindo que a conta de daemon de filtro faça logon. |
| Uma carga de trabalho de consulta muito pesada está em execução na instância do servidor. | Tente executar a consulta novamente com uma carga mais leve. |
Noções básicas sobre o impacto dos separadores de palavras atualizados
Cada versão do Mecanismo de Banco de Dados pode incluir quebradores de palavras atualizados com regras linguísticas revisadas. Esses quebradores de palavras atualizados podem se comportar de forma diferente dos quebradores de palavras em índices de texto completo importados de versões anteriores do Mecanismo de Banco de Dados.
Isso é significativo se um catálogo em texto completo foi importado quando um banco de dados foi atualizado para a versão atual do Mecanismo de Banco de Dados. 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, veja Atualizar pesquisa de texto completo.
Conteúdo relacionado
- CREATE FULLTEXT INDEX (Transact-SQL)
- ALTER FULLTEXT INDEX (Transact-SQL)
- Binários de separadores de palavras e stemmers para pesquisa de texto completo
- Personalizar filtros e separadores de palavras
- Configure e gerencie palavras irrelevantes e listas de palavras irrelevantes para Pesquisa de Texto Completo