|
|
Publicado emOntem às 20:20
|
|
|
|

A busca em texto completo é um componente opcional do mecanismo de banco de dados SQL Server. Se você não selecionou busca por texto completo ao instalar o SQL Server, execute novamente o instalador do SQL Server para adicioná-lo.
Visão geral
Um índice em texto completo inclui uma ou mais colunas baseadas em caracteres em uma tabela. Essas colunas podem conter qualquer um dos seguintes tipos de dados: char, varchar, nchar, nvarchar, text, ntext, image, xml, ou varbinary(max) e FILESTREAM. Cada índice em texto completo cria um índice para uma ou mais colunas da tabela, e cada coluna pode usar uma linguagem específica.
Consultas de texto completo operam sobre palavras e frases de acordo com as regras de idiomas específicos (como inglês ou japonês), realizando assim buscas de idiomas baseadas nos dados de texto no índice de texto completo. Consultas em texto completo podem incluir palavras e frases simples, ou múltiplas formas de palavras ou frases. Uma consulta em texto completo retorna todos os documentos contendo pelo menos uma correspondência (também conhecida como "hit"). Uma correspondência ocorre quando o documento de destino contém todos os termos especificados na consulta em texto completo e corresponde a quaisquer outros critérios de busca (como a distância entre termos correspondentes).
Instalação do Serviço de Busca em Texto Completo do Linux Docker MSSQL 2022
As referências são as seguintes:
Verifique se o recurso de busca em texto completo do SQL SERVER está instalado
O comando é o seguinte:
Busca em Texto Completo do SQL Server, Índice de Texto Completo
Primeiro, crie uma nova biblioteca de teste e insira os dados de teste. O script é o seguinte:
Crie um índice em texto completo
Uma tabela de conteúdo em texto completo é usada para armazenar o índice do texto completo. Você pode criá-lo diretamente usando os seguintes scripts:
Criar índices em texto completo para tabelas de banco de dados
Ao criar um índice em texto completo para uma tabela de banco de dados, você precisa especificar o idioma correspondente. Como a segmentação de palavras varia entre os idiomas, o SQL Server usará a segmentação de palavras do idioma correspondente para processar os dados na tabela. A busca em texto completo do SQL Server suporta cerca de 50 idiomas diferentes, permitindo visualizar todos os idiomas suportados consultando sys.fulltext_languages tabelas. Comando:
Como mostrado abaixo:
Em seguida, adicionamos um índice completo para o chinês simplificado nos campos Título e Conteúdo na tabela de notícias:
Busca em texto completo por predicados e funções
Consultas de texto completo usam predicados de texto completo (CONTÉMeTEXTO LIVRE) e funções de texto completo (CONTAINSTABLEeFREETEXT)。 Eles suportam a complexa sintaxe Transact-SQL, que suporta várias formas de termos de consulta.
A diferença entre CONTAINS e FREETEXT
CONTAINS: O login do hiperlink está visível.
Use métodos precisos de correspondência para encontrar palavras ou frases específicas no texto. Suporta condições complexas de consulta, como busca por proximidade (por exemplo, palavras devem aparecer próximas umas das outras), busca por prefixo e outras. Geralmente é usado em situações onde é necessário um controle mais específico sobre os resultados de busca.
FREETEXT: O login do hiperlink está visível.
Proporciona uma experiência de busca mais flexível e baseada em linguagem natural. Não são necessários critérios especiais de busca; Ele analisa automaticamente o texto de entrada e tenta encontrar conteúdo relacionado. É mais adequado para usuários que desejam realizar buscas simples por palavras-chave como o Google, sem se preocupar com locais ou formatos específicos.
Os comandos são os seguintes:
Como mostrado abaixo:
CONTAINSTABLE e FREETEXT table
CONTAINSTABLE retorna tabelas que atendem aos critérios de consulta. Em instruções SQL, podemos tratá-las como tabelas regulares, e consultas usando CONTAINSTABLE retornam um valor RANK e uma CHAVE para cada linha. RANK é usado para indicar o grau de correspondência de correlação, com valores entre 0~1000, e KEY é o ID da tabela principal. O FREETEXTTABLE primeiro segmenta as palavras e sentenças a serem consultadas, depois consulta para correspondência. O comando é o seguinte:
Como mostrado abaixo:
Além disso, você pode verificar os resultados da segmentação consultando sys.dm_fts_parser:
Como mostrado abaixo:
questão
Pergunta: CONTAINS não suporta consultas fuzzy por padrão. Se você digitar CONTAINS(Column, 'apple'), ele corresponderá à palavra raiz (por exemplo, apples), mas não com abacaxi. Solução: Se forem necessárias consultas fuzzy, elas devem ser colocadas antes e depois dos coringasAdicione aspas duplas e um asterisco:CONTÉM(Coluna, '"*maçã*"')
Referência:
O login do hiperlink está visível.
O login do hiperlink está visível. |
Anterior:Site de plataforma de trabalho remoto, trabalho e trabalho freelance
|