Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Banco de Dados SQL do Azure
Instância Gerenciada SQL do Azure
Os separadores de palavras e lematizadores realizam análise linguística em todos os dados indexados de texto completo. A análise linguística faz as duas coisas seguintes:
Identificar limites de palavras (divisão de palavras). O separador de palavras identifica palavras individuais, determinando onde existem limites de palavras com base nas regras lexicais da língua. Cada palavra (também conhecida como token ) é inserida no índice de texto completo usando uma representação compactada para reduzir seu tamanho.
Conjugar verbos (stemming). O stemmer gera formas flexionais de uma determinada palavra com base nas regras dessa língua (por exemplo, "correndo", "correu" e "corredor" são várias formas da palavra "correr").
Os separadores de palavras e lematizadores são específicos do idioma
Os segmentadores de palavras e lematizadores são específicos da língua, e as regras para a análise linguística variam entre diferentes idiomas. Os separadores de palavras específicos do idioma tornam os termos resultantes mais precisos para esse idioma.
Para usar os quebradores de palavras e stemmers fornecidos para todas as linguagens suportadas pelo Mecanismo de Banco de Dados do SQL Server, normalmente não é necessário tomar qualquer ação.
Quando há um separador de palavras para a família linguística, mas não para a sublíngua específica, a língua principal é usada. Por exemplo, o separador de palavras francês é usado para manipular texto que é francês canadense.
Se nenhum separador de palavras estiver disponível para um idioma específico, o separador de palavras neutro será usado. Com o separador de palavras neutro, as palavras são quebradas em caracteres neutros, como espaços e sinais de pontuação.
Obter a lista de idiomas suportados
Para ver a lista de linguagens suportadas pelo Full-Text Search, utilize a seguinte Transact-SQL instrução. A presença de um idioma nesta lista indica que os separadores de palavras estão registados para o idioma.
SELECT *
FROM sys.fulltext_languages;
Obter a lista de separadores de palavras registados
Para que Full-Text Pesquisa use os separadores de palavras para um idioma, eles devem ser registrados. Para quebradores de palavras registados, os recursos linguísticos associados também ficam disponíveis para operações de indexação e consulta de texto completo. Estes recursos incluem stemmers, palavras vazias (stopwords) e ficheiros de tesauros.
Para ver a lista de componentes de separador de palavras registados, 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 adicionar ou remover um separador de palavras
Se você adicionar, remover ou alterar um separador de palavras, precisará atualizar a lista de LCIDs (identificadores de localidade) do Microsoft Windows com suporte para indexação e consulta de texto completo. Para mais informações, consulte Personalizar filtros e quebradores de palavras.
Definir a opção de idioma de texto completo padrão
Para uma versão localizada do SQL Server, a Instalação do SQL Server define a opção de idioma de texto completo padrão para o idioma do servidor, se existir uma correspondência apropriada. Para uma versão não localizada do SQL Server, a opção de idioma de texto completo padrão é o inglês.
Ao 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 idioma de texto completo padrão.
Observação
Todas as colunas listadas numa única cláusula de função de consulta em texto completo devem usar a mesma linguagem, a menos que a LANGUAGE opção seja especificada na consulta. A linguagem utilizada para a coluna indexada de texto completo que está a ser consultada determina a análise linguística realizada sobre os argumentos dos predicados de consulta de texto completo (CONTÉM e TEXTO LIVRE) e 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 qual separador de palavras e lematizador são usados para indexar essa coluna. Além disso, o ficheiro de sinónimos dessa língua é utilizado por consultas de texto completo na coluna.
Há algumas coisas a considerar ao escolher o idioma da coluna para criar um índice de texto completo. Essas considerações estão relacionadas a como seu texto é tokenizado e, em seguida, indexado pelo Full-Text Engine. Para mais informações, consulte Escolher uma língua ao criar um índice em texto completo.
Para exibir o idioma do separador de palavras de colunas específicas, execute a instrução a seguir.
SELECT language_id AS 'LCID'
FROM sys.fulltext_index_columns;
Para obter mais informações, consulte sys.fulltext_index_columns.
Resolver erro de tempo de espera na quebra de palavras
Um erro de tempo limite de quebra 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ção 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 (Erro de Timeout na Quebra de Palavras) |
| Texto da mensagem | A quebra de palavras atingiu o tempo limite para a cadeia de caracteres de consulta de texto completo. Isso pode acontecer se o separador de palavras demorou muito tempo para processar a cadeia de caracteres de consulta de texto completo ou se um grande número de consultas estiver em execução no servidor. Tente executar a consulta novamente sob uma carga mais leve. |
Explicação
Um erro de tempo limite relacionado à quebra de palavras pode ocorrer nas seguintes situações:
O separador de palavras para a linguagem de consulta está configurado incorretamente. Por exemplo, as definições do registo estão incorretas.
O separador de palavras funciona mal para uma cadeia de caracteres de consulta específica.
O separador de palavras retorna um excesso de dados para uma string de consulta específica. O excesso de dados é tratado como um potencial ataque de ultrapassagem do buffer e encerra o processo do demónio de filtro (
fdhost.exe), que acolhe os serviços de segmentação de palavras.A configuração do processo do daemon de filtro está incorreta.
Os problemas de configuração mais comuns são a expiração de senha ou uma política de domínio que impede que a conta do daemon de filtro faça logon.
Uma carga de trabalho de consulta muito pesada está sendo executada na instância do servidor. Por exemplo, o quebrador de palavras demorou muito tempo a processar a cadeia de consulta em texto completo, ou um grande número de consultas está a correr no servidor. Esta é a causa menos provável.
Ação do usuário
Selecione a ação do usuário apropriada para a causa provável do tempo limite, da seguinte maneira:
| Causa provável | Ação do usuário |
|---|---|
| O separador de palavras para a linguagem de consulta está configurado incorretamente. | Se você estiver usando um separador de palavras de terceiros, ele pode estar registrado incorretamente no sistema operacional. Nesse caso, registre novamente o separador de palavras. Para mais informações, consulte Repor os separadores de palavras utilizados pela Pesquisa de Texto Completo para a versão anterior. |
| O separador de palavras funciona mal para uma cadeia de caracteres de consulta específica. | Se o quebrador de palavras for suportado pelo Database Engine, contacte o Microsoft Customer Service and Support. |
| O separador de palavras retorna um excesso de dados para uma string de consulta específica. | Se o quebrador de palavras for suportado pelo Database Engine, contacte o Microsoft Customer Service and Support. |
| A configuração do processo do daemon de filtro está incorreta. | Certifique-se de que está a utilizar a palavra-passe atual e de que uma política de domínio não está a impedir a conta do daemon de filtro de iniciar sessão. |
| Uma carga de trabalho de consulta muito pesada está sendo executada na instância do servidor. | Tente executar a consulta novamente sob uma carga mais leve. |
Compreender o impacto dos separadores de palavras atualizados
Cada versão do Database Engine pode incluir quebradores de palavras atualizados com regras linguísticas revistas. Estes quebradores de palavras atualizados podem comportar-se de forma diferente dos quebradores de palavras em índices de texto completo importados de versões anteriores do Database Engine.
Isto é significativo se um catálogo em texto completo foi importado quando uma base de dados foi atualizada para a versão atual do Database Engine. Um ou mais idiomas usados pelos índices de texto completo no catálogo de texto completo agora podem estar associados a novos separadores de palavras. Para obter mais informações, consulte Atualizar Full-Text Pesquisar.