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:SQL Server
As consultas do SQL Server Full-Text Search podem procurar sinônimos de termos especificados pelo usuário usando um tesauro de pesquisa Full-Text. Cada dicionário de sinônimos define um conjunto de sinônimos para um idioma específico. Ao desenvolver um dicionário de sinônimos personalizado para seus dados de texto completo, você pode efetivamente ampliar o escopo de consultas de texto completo baseadas nesses dados.
A correspondência de sinônimos ocorre para todas as consultas FREETEXT e FREETEXTTABLE e para quaisquer consultas CONTAINS e CONTAINSTABLE que especifiquem a cláusula FORMSOF THESAURUS.
Um dicionário de sinônimos de Pesquisa de Texto Completo é um arquivo de texto XML.
O que há em um dicionário de sinônimos
Antes que as consultas de pesquisa de texto completo possam procurar sinônimos em um determinado idioma, é necessário definir mapeamentos de dicionário de sinônimos (ou seja, sinônimos) para esse idioma. Cada dicionário de sinônimos deve ser configurado manualmente para definir as seguintes configurações:
Conjunto de expansão
Um conjunto de expansão contém um grupo de sinônimos, como "escritor", "autor" e "jornalista", que são substituídos entre si por uma consulta de texto completo. As consultas que contêm uma correspondência para qualquer sinônimo do conjunto de expansão são expandidas para incluir todos os outros sinônimos do conjunto de expansão.
Para obter mais informações, consulte a Estrutura XML de um Conjunto de Expansão posteriormente neste artigo.
Conjunto de substituição
Um conjunto de substituição contém um padrão de texto a ser substituído por um conjunto de substituição. Para obter um exemplo, consulte a seção Estrutura XML de um Conjunto de Substituição posteriormente neste artigo.
Configuração de diacríticos
Em um determinado dicionário de sinônimos, todos os padrões de pesquisa diferenciam ou não diferenciam marcas diacríticas, como um til (~), acento agudo (´) ou trema (¨), ou seja, eles diferenciam acentos ou não diferenciam acentos. Por exemplo, vamos supor que você especificou que o padrão "café" deve ser substituído por outros padrões em uma consulta de texto completo. Se o dicionário de sinônimos não diferenciar acentos, a pesquisa de texto completo substituirá os padrões "café" e "cafe". Se o dicionário de sinônimos diferenciar acentos, a pesquisa de texto completo substituirá somente o padrão "café". Por padrão, um dicionário de sinônimos não diferencia acentos.
Arquivos de dicionário de sinônimos padrão
O SQL Server oferece um conjunto de arquivos XML de dicionário de sinônimos, um para cada idioma com suporte. Esses arquivos estão basicamente vazios. Eles contêm apenas a estrutura XML de alto nível que é comum a todos os dicionários de sinônimos do SQL Server e um dicionário de sinônimos de exemplo comentado.
Localização dos arquivos de dicionário de sinônimos
A localização padrão dos arquivos de dicionário de sinônimos é esta:
<SQL_Server_data_files_path>\MSSQL13.MSSQLSERVER\MSSQL\FTDATA\
Esse local padrão contém os seguintes arquivos:
Arquivos de dicionário de sinônimos específicos a um idioma
A instalação instala arquivos de dicionário de sinônimos vazios no local anterior. Um arquivo à parte é fornecido para cada idioma suportado. Um administrador de sistema pode personalizar esses arquivos.
Os nomes de arquivo padrão dos arquivos de dicionário de sinônimos usam o seguinte formato:
'ts' + <three-letter language-abbreviation> + '.xml'O nome do arquivo de dicionário de sinônimos para um determinado idioma é especificado no Registro no seguinte valor:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\<instance-name>\MSSearch\<language-abbrev>O arquivo de dicionário de sinônimos global
Um arquivo de dicionário de sinônimos global vazio, tsGlobal.xml.
Alterar o local de um arquivo de dicionário de sinônimos
Você pode alterar a localização e os nomes de um arquivo de dicionário de sinônimos mudando a respectiva chave do Registro. Para cada idioma, a localização do arquivo de dicionário de sinônimos é especificada no seguinte valor do Registro:
HKLM\SOFTWARE\Microsoft\Microsoft SQL Server\<instance name>\MSSearch\Language\<language-abbreviation>\TsaurusFile
O arquivo de dicionário de sinônimos global corresponde ao idioma Neutro com LCID 0. Esse valor só pode ser alterado por administradores.
Como consultas de texto completo usam o dicionário de sinônimos
Uma consulta ao dicionário de sinônimos usa um dicionário de sinônimos específico de um idioma e o dicionário de sinônimos global.
Primeiro, a consulta pesquisa o arquivo específico do idioma e o carrega para processamento (a menos que já esteja carregado). A consulta é expandida para incluir os sinônimos específicos do idioma definidos pelos conjuntos de expansão e regras de substituição no arquivo do dicionário de sinônimos.
Essas etapas são repetidas para o dicionário de sinônimos global. Entretanto, se um termo já tiver correspondências no arquivo de dicionário de sinônimos específico do idioma, ele não terá correspondentes no dicionário de sinônimos global.
Estrutura de um arquivo de dicionário de sinônimos
Cada arquivo de dicionário de sinônimos define um contêiner XML cuja ID é Microsoft Search Thesaurus, e um comentário... <!---->, que contém um dicionário de sinônimos de exemplo. O dicionário de sinônimos é definido em um elemento <thesaurus> que contém exemplos dos elementos filho que definem a configuração de diacríticos, os conjuntos de expansão e os conjuntos de substituição.
Um arquivo de dicionário de sinônimos vazio típico contém o seguinte texto XML:
<XML ID="Microsoft Search Thesaurus">
<!-- Commented out
<thesaurus xmlns="x-schema:tsSchema.xml">
<diacritics_sensitive>0</diacritics_sensitive>
<expansion>
<sub>Internet Explorer</sub>
<sub>IE</sub>
<sub>IE5</sub>
</expansion>
<replacement>
<pat>NT5</pat>
<pat>W2K</pat>
<sub>Windows 2012</sub>
</replacement>
<expansion>
<sub>run</sub>
<sub>jog</sub>
</expansion>
</thesaurus>
-->
</XML>
Estrutura XML de um conjunto de expansão
Cada conjunto de expansão é incluído em um elemento <expansion>. Nesse elemento, você especifica uma ou mais substituições em um elemento <sub>. No conjunto de expansão, você pode especificar um grupo de substituições sinônimas umas das outras.
Por exemplo, você pode editar a seção de expansão para tratar as substituições "escritor", "autor" e "jornalista" como sinônimos. As consultas de pesquisa de texto completo que contêm correspondências em uma substituição são expandidas para incluir todas as outras substituições especificadas no conjunto de expansão. Por isso, no exemplo anterior, quando você emite uma consulta FORMS OF THESAURUS ou FREETEXT para a palavra "autor", a pesquisa de texto completo também retorna resultados que contêm as palavras "escritor" e "jornalista".
É assim que a seção do conjunto de expansão ficaria no exemplo anterior:
<expansion>
<sub>writer</sub>
<sub>author</sub>
<sub>journalist</sub>
</expansion>
Estrutura XML de um conjunto de substituição
Cada conjunto de substituição é incluído em um elemento <replacement>. Nesse elemento, você pode especificar um ou mais padrões em um <pat> elemento e zero ou mais substituições em <sub> elementos, um por sinônimo. Também pode especificar um padrão a ser substituído por um conjunto de substituição. Padrões e substituições podem conter uma palavra ou uma sequência de palavras. Se não houver nenhuma substituição especificada para um padrão, ela terá o efeito de remover o padrão da consulta de usuário.
Por exemplo, vamos supor que você deseja que as consultas relacionadas ao termo "Win8", o padrão, sejam substituídas por "Windows Server 2012" ou "Windows 8.0", as substituições. Se você executar uma consulta de texto completo usando o termo "Win8", a pesquisa de texto completo retornará apenas resultados que contenham "Windows Server 2012" ou "Windows 8.0", Ele não retorna resultados que contêm "Win8". Isso ocorre porque o padrão "Win8" é "substituído" pelos padrões "Windows Server 2012" e "Windows 8.0".
A seção do conjunto de substituição teria esta aparência no exemplo anterior:
<replacement>
<pat>Win8</pat>
<sub>Windows Server 2012</sub>
<sub>Windows 8.0</sub>
</replacement>
Se você tiver dois conjuntos de substituição com padrões semelhantes sendo associados, o mais longo dos dois tem precedência. Por exemplo, ao executar a consulta FORMS OF THESAURUS para "comunidade online do Internet Explorer" com os conjuntos de substituição a seguir, o conjunto de substituição "Internet Explorer" tem precedência sobre o conjunto de substituição "Internet". Portanto, a consulta é processada como "comunidade online do IE" ou "comunidade online do IE 9".
<replacement>
<pat>Internet</pat>
<sub>intranet</sub>
</replacement>
e
<replacement>
<pat>Internet Explorer</pat>
<sub>IE</sub>
<sub>IE 9</sub>
</replacement>
Estrutura XML da configuração de diacríticos
A configuração de diacríticos de um dicionário de sinônimos é especificada em um único elemento <diacritics_sensitive>. Esse elemento contém um valor de inteiro que controla a distinção de acentos, da seguinte maneira:
| Configuração de diacríticos | Valor | XML |
|---|---|---|
| Não diferencia acentos | 0 | <diacritics_sensitive>0</diacritics_sensitive> |
| Diferencia acentos | 1 | <diacritics_sensitive>1</diacritics_sensitive> |
Observação
Essa configuração só pode ser aplicada uma vez no arquivo e é válida para todos os padrões de pesquisa do arquivo. Essa configuração não pode ser especificada para padrões individuais.
Editar um dicionário de sinônimos
É possível configurar o dicionário de sinônimos para um determinado idioma editando seu arquivo de dicionário de sinônimos (um arquivo XML). Durante a instalação, os arquivos vazios do dicionário de sinônimos que só incluem o contêiner <xml> e um elemento de exemplo do <thesaurus> inserido como comentário são instalados. Para que as consultas de pesquisa de texto completo que procuram sinônimos funcionem adequadamente, é necessário criar um elemento real <thesaurus> que defina um conjunto de sinônimos. Você pode definir duas formas de sinônimos: conjuntos de expansão e conjuntos de substituição.
Editar um arquivo de dicionário de sinônimos
Abra o arquivo de dicionário de sinônimos usando o Bloco de Notas ou outro editor de texto.
Se você estiver editando o arquivo de dicionário de sinônimos pela primeira vez, remova as seguintes linhas de comentário no início e no final do arquivo, respectivamente:
<!--Commented out -->Adicione, modifique ou exclua um conjunto de substituição ou um conjunto de expansão.
Salve o arquivo e feche o Bloco de Notas.
Use sp_fulltext_load_thesaurus_file para carregar o conteúdo do arquivo
tempdbde dicionário de sinônimos, especificando o LCID (identificador local) que corresponde ao idioma do arquivo de dicionário de sinônimos. Por exemplo, para o arquivo de dicionário de sinônimos em inglês, tsenu.xml, o LCID correspondente é 1033.USE AdventureWorks; EXECUTE sys.sp_fulltext_load_thesaurus_file 1033; GO
Recomendações para editar arquivos de dicionário de sinônimos
Recomendamos que as entradas no arquivo do dicionário de sinônimos não contenham caracteres especiais. Isso ocorre porque os separadores de palavras têm comportamentos sutis em relação a caracteres especiais. Se uma entrada de dicionário de sinônimos contiver caracteres especiais, os separadores de palavras usados com essa entrada poderão ter implicações de comportamento sutis para uma consulta de texto completo.
Recomendamos que as entradas <sub> não contenham palavras irrelevantes, pois tais palavras são omitidas do índice de texto completo. As consultas são expandidas para incluir as entradas <sub> de um arquivo de dicionário de sinônimos e, se uma entrada <sub> contiver palavras irrelevantes, o tamanho da consulta aumentará desnecessariamente.
Restrições para editar arquivos de dicionário de sinônimos
As seguintes restrições se aplicam à edição de um arquivo de dicionário de sinônimos:
Somente administradores do sistema podem atualizar, modificar ou excluir arquivos de dicionário de sinônimos.
Quando você edita arquivos de dicionário de sinônimos usando ferramentas de editor de texto, os arquivos devem ser salvos no formato Unicode e as Marcas de Ordem de Bytes devem ser especificadas.
As entradas do dicionário de sinônimos não podem estar vazias nem resultar em uma string vazia.
As frases no arquivo de dicionário de sinônimos não devem ter mais de 512 caracteres.
Um dicionário de sinônimos não deve conter entradas duplicadas entre as entradas
<sub>de conjuntos de expansão e os elementos<pat>de conjuntos de substituição.