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.
Você pode criar um índice de texto completo em colunas XML que indexa o conteúdo dos valores XML, mas ignora a marcação XML. As marcas de elemento são usadas como limites de token. Os seguintes itens são indexados:
O conteúdo dos elementos XML.
O conteúdo dos atributos XML somente do elemento de nível superior, a menos que esses valores sejam valores numéricos.
Quando possível, você pode combinar a pesquisa de texto completo com o índice XML da seguinte maneira:
Primeiro, filtre os valores XML de interesse usando a pesquisa de texto completo do SQL.
Em seguida, consulte os valores XML que usam o índice XML na coluna XML.
Exemplo: combinando pesquisa de texto completo com consulta XML
Depois que o índice de texto completo tiver sido criado na coluna XML, a consulta a seguir verifica se um valor XML contém a palavra "personalizado" no título de um livro:
SELECT *
FROM T
WHERE CONTAINS(xCol,'custom')
AND xCol.exist('/book/title/text()[contains(.,"custom")]') =1
O método contains() usa o índice de texto completo para subconjuntar os valores XML que contêm a palavra "custom" em qualquer lugar do documento. A cláusula exist() garante que a palavra "custom" ocorra no título de um livro.
Uma pesquisa de texto completo que usa contains() e XQuery contains() tem semânticas diferentes. Este último é uma correspondência de subcadeia de caracteres e o primeiro é uma correspondência de token que usa lematização. Portanto, se a pesquisa for pela cadeia de caracteres que tem "run" no título, os resultados incluirão "run", "runs" e "running", porque tanto a busca em texto completo contém() quanto o Xquery contains() são atendidos. No entanto, a consulta não corresponde à palavra "personalizável" no título em que o texto completo contém() falha, mas o Xquery contém() está satisfeito. Geralmente, para correspondência pura de subcadeias, a cláusula contains() de texto completo deve ser removida.
Além disso, a pesquisa de texto completo usa o leque de palavras, mas XQuery contém() uma correspondência literal. Essa diferença é ilustrada no próximo exemplo.
Exemplo: pesquisa de texto completo em valores XML usando o stemming
A verificação XQuery contém() que foi executada no exemplo anterior geralmente não pode ser eliminada. Considere esta consulta:
SELECT *
FROM T
WHERE CONTAINS(xCol,'run')
A palavra "executado" no documento corresponde à condição de pesquisa devido à recorrência. Além disso, o contexto de pesquisa não é verificado usando XQuery.
Quando o XML é decomposto em colunas relacionais usando a AXSD indexada por texto completo, as consultas XPath que ocorrem na exibição XML não executam a pesquisa de texto completo nas tabelas subjacentes.