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
Banco de dados SQL no Microsoft Fabric
Retorna o resultado final da geração de tokens após aplicar uma determinada combinação de separador de palavras, dicionário de sinônimos e lista de palavras irrelevantes a uma entrada de cadeia de caracteres de consulta. O resultado da geração de tokens é equivalente à saída do Mecanismo de Texto Completo para a cadeia de caracteres de consulta especificada.
sys.dm_fts_parser é uma função de gerenciamento dinâmico.
Syntax
sys.dm_fts_parser (
'query_string'
, lcid
, stoplist_id
, accent_sensitivity
)
Argumentos
query_string
A consulta que você deseja analisar. query_string pode ser uma cadeia de cadeia de caracteres que CONTÉM suporte à sintaxe. Por exemplo, é possível incluir formas flexionadas, uma dicionário de sinônimo e operadores lógicos.
lcid
LCID (identificador de localidade) do separador de palavras a ser usado para analisar query_string.
stoplist_id
ID da lista de palavras irrelevantes, se houver, a ser usada pelo separador de palavras identificado por lcid.
stoplist_id é inteligência. Se você especificar 'NULL', não é usado nenhum stoplist. Se você especificar 0, o sistema STOPLIST é usado.
Uma ID da lista de palavras irrelevantes é exclusiva em um banco de dados. Para obter a ID da lista de palavras irrelevantes para um índice de texto completo em uma determinada tabela, use a exibição de catálogo sys.fulltext_indexes .
accent_sensitivity
Valor Booliano que controla se a pesquisa de texto completo diferencia ou não diacríticos. accent_sensitivity é bit, com um dos seguintes valores:
| Valor | A sensibilidade ao sotaque é... |
|---|---|
| 0 | Não diferencia Palavras como "café" e "cafe" são tratadas da mesma forma. |
| 1 | Confidencial Palavras como "café" e "cafe" são tratadas de forma diferente. |
Note
Para exibir a configuração atual desse valor para um catálogo de texto completo, execute a seguinte instrução Transact-SQL: SELECT fulltextcatalogproperty('<catalog_name>', 'AccentSensitivity');.
Tabela retornada
| Nome da Coluna | Tipo de dados | Descrição |
|---|---|---|
keyword
1 |
varbinary(128) | A representação hexadecimal de uma determinada palavra-chave retornada por um separador de palavras. Essa representação é usada para armazenar a palavra-chave no índice de texto completo. Esse valor não é legível por humanos, mas é útil para relacionar uma palavra-chave dada à saída retornada por outras visualizações dinâmicas de gerenciamento que retornam o conteúdo de um índice em texto completo, como sys.dm_fts_index_keywords e sys.dm_fts_index_keywords_by_document. |
group_id |
int | Contém um valor de inteiro que é útil para diferenciar o grupo lógico a partir do qual um determinado termo foi gerado. Por exemplo, Server AND DB OR FORMSOF(THESAURUS, DB) produz os seguintes group_id valores em inglês:1: Servidor2: DB3: DB |
phrase_id |
int | Contém um valor inteiro que é útil para diferenciar os casos em que formas alternativas de palavras compostas, como texto completo, são geradas pelo separador de palavras. Às vezes, devido à existência de palavras compostas ('multi-million'), formas alternativas são geradas pelo separador de palavras. Às vezes, essas formas alternativas (frases) precisam ser diferenciadas. Por exemplo, multi-million produz os seguintes phrase_id valores em inglês:1 para multi1 para million2 para multimillion |
occurrence |
int | Indica a ordem de cada termo no resultado da análise. Por exemplo, para a frase SQL Server query processor ocorrência conteria os seguintes valores de ocorrência para os termos da frase, em inglês:1 para SQL2 para Server3 para query4 para processor |
special_term |
nvarchar(4000) | Contém informações sobre as características do termo que está sendo emitido pelo separador de palavras, um destes: - Correspondência exata - Palavra de ruído - Fim da frase - Fim do parágrafo - Fim do capítulo |
display_term |
nvarchar(4000) | Contém a forma legível da palavra-chave. Como ocorre com as funções criadas para acessar o conteúdo do índice de texto completo, esse termo exibido pode não ser idêntico ao termo original por motivo de limitação de desnormalização. No entanto, ele precisar ser preciso o suficiente para ajudar você a identificá-lo da entrada original. |
expansion_type |
int | Contém informações sobre a natureza da expansão de um determinado termo, um destes: 0 = Maiúsculas e minúsculas de uma única palavra 2 = Expansão flexional 4 = Expansão/substituição do dicionário de sinônimos Por exemplo, considere um caso no qual o dicionário de sinônimos define a execução como uma expansão de jog:<expansion><sub>run</sub><sub>jog</sub></expansion>O termo FORMSOF (FREETEXT, run) gera a seguinte saída:run com expansion_type = 0runs com expansion_type = 2running com expansion_type = 2ran com expansion_type = 2jog com expansion_type = 4 |
source_term |
nvarchar(4000) | O termo ou frase a partir do qual um determinado termo foi gerado ou analisado. Por exemplo, uma consulta no '"word breakers" AND stemmers' produz os seguintes valores source_term em inglês:word breakers para o display_termwordword breakers para o display_termbreakersstemmers para o display_termstemmers |
10xFF representa o caractere especial que indica o fim de um arquivo ou conjunto de dados.
Observações
sys.dm_fts_parserdá suporte à sintaxe e aos recursos de predicados de texto completo, como CONTAINS e FREETEXT, e funções, como CONTAINSTABLE e FREETEXTTABLE.
Usar Unicode para analisar caracteres especiais
Quando você analisa uma cadeia de consulta, sys.dm_fts_parser usa a colação do banco de dados ao qual você está conectado, a menos que especifique a cadeia de consulta como Unicode. No entanto, para uma cadeia de caracteres não Unicode que contém caracteres especiais, como ü ou ç, a saída pode ser inesperada, dependendo da ordenação do banco de dados. Para processar uma string de consulta independentemente da colação do banco de dados, prefixe a string com N, ou seja, N'<query_string>'.
Para obter mais informações, consulte C. Exibir a saída de uma cadeia de caracteres que contém caracteres especiais mais adiante neste artigo.
Quando usar sys.dm_fts_parser
sys.dm_fts_parser pode ser poderoso para fins de depuração. Alguns dos principais cenários de uso incluem:
Para entender como um determinado separador de palavras trata uma certa entrada
Quando uma consulta retorna resultados inesperados, uma causa provável é a maneira como o separador de palavras está analisando e separando os dados. Usando
sys.dm_fts_parsero , você descobre o resultado que um separador de palavras passa para o índice de texto completo. Além disso, você pode ver quais termos são palavras irrelevantes, quais não são pesquisados no índice de texto completo. Se um termo é uma palavra de registro para uma determinada língua depende de estar na lista de registros especificada pelo valor de stoplist_id declarado na função.O sinalizador de diferenciação de acentos permite que você veja como o separador de palavras analisa a entrada, tendo em mente suas informações de diferenciação de acento.
Para entender como o lematizador funciona em uma determinada entrada
Você pode descobrir como o quebrador de palavras e o stemmer analisam um termo de consulta e suas formas de stemming, especificando uma
CONTAINSconsulta ouCONTAINSTABLEcontendo a seguinteFORMSOFcláusula:FORMSOF ( INFLECTIONAL, <query_term> )Os resultados indicam quais termos estão sendo passados ao índice de texto completo.
Para entender como o dicionário de sinônimos expande ou substitui toda a entrada ou parte dela
Você também pode especificar:
FORMSOF ( THESAURUS, <query_term> )O resultado dessa consulta mostra como o separador de palavras e o dicionário de sinônimos interagem com relação ao termo da consulta. É possível ver a expansão ou as substituições feitas a partir do dicionário de sinônimos e identificar a consulta resultante que está sendo emitida para o índice de texto completo.
Se o usuário emitir:
FORMSOF ( FREETEXT, <query_term> )Os recursos flexionais e de dicionário de sinônimos ocorrem automaticamente.
Além dos cenários de uso anteriores, sys.dm_fts_parser o pode ajudar significativamente a entender e solucionar muitos outros problemas com a consulta de texto completo.
Permissions
Requer CREATE FULLTEXT CATALOG permissão e direitos de acesso ao stop list especificado.
Examples
A. Exibir a saída de um determinado separador de palavras para uma palavra-chave ou frase
O exemplo a seguir retorna a saída a partir do uso do separador de palavras em inglês, cujo LCID é 1033, e nenhuma lista de palavras irrelevantes na cadeia de caracteres de consulta a seguir:
The Microsoft business analysis
A distinção de acentos foi desabilitada.
SELECT *
FROM sys.dm_fts_parser(' "The Microsoft business analysis" ', 1033, 0, 0);
B. Exibir a saída de um determinado separador de palavras no contexto da filtragem de lista de palavras irrelevantes
O exemplo a seguir retorna a saída a partir do uso do separador de palavras em inglês, cujo LCID é 1033, uma lista de palavras irrelevantes em inglês, cuja ID é 77, na cadeia de caracteres de consulta a seguir:
"The Microsoft business analysis" OR "MS revenue"
A distinção de acentos foi desabilitada.
SELECT *
FROM sys.dm_fts_parser(' "The Microsoft business analysis" OR " MS revenue" ', 1033, 77, 0);
C. Exibir a saída de uma cadeia de caracteres que contém caracteres especiais
O exemplo a seguir usa o Unicode para analisar a cadeia de caracteres franceses a seguir:
français
O exemplo especifica o LCID do idioma francês 1036 e a ID de uma lista de palavras irrelevantes definida pelo usuário 5. A distinção de acentos está habilitada.
SELECT *
FROM sys.dm_fts_parser(N'français', 1036, 5, 1);
Conteúdo relacionado
- Visualizações e funções dinâmicas de gerenciamento em texto integral e busca semântica
- Pesquisa de texto completo
- Securables
- Configurar e gerenciar separadores de palavras e lematizadores
- Configurar e gerenciar arquivos de dicionário de sinônimos para pesquisa de texto completo
- Configurar e gerenciar palavras de parada e listas de palavras de parada para pesquisa de texto completo
- Consulta com pesquisa de texto completo