Full Text Search e Semantic Search no SQL Server 2012 – Parte 3

Ola pessoal,

Nesse terceiro post vou demonstrar as novas funções do Semantic Search para que voce então possa retirar o maior proveito dessa funcionalidade. Para quem não sabe o que é Semantic Search vou colocar aqui algumas palavras descritas pelo Books Online.

“Statistical Semantic Search provides deep insight into unstructured documents stored in SQL Server databases by extracting and indexing statistically relevant key phrases. Then it also uses these key phrases to identify and index documents that are similar or related.

You query these semantic indexes by using three Transact-SQL rowset functions to retrieve the results as structured data.”

Fonte: http://msdn.microsoft.com/en-us/library/gg492075.aspx

Dento do Semantic Search quais são os tipos de consulta disponiveis para o usuario?

Função 1: semantickeyphrasetable

Utilização: Retorna as palavras chaves que mais aparecem dentro de todos os documentos da tabela, informando o valor da força de cada uma dessas palavras.

Consulta:

SELECT name, keyphrase, score
FROM semantickeyphrasetable(tblDocumentos, *)
INNER JOIN tblDocumentos ON stream_id = document_key
ORDER BY name, score DESC

image

Função 2: semanticsimilaritytable

Utilização: Retorna uma lista de documentos, na qual o conteudo de um documento passado como parametro é igual ou parecido a uma lista de documentos pesquisados.

Consulta:

/* Pegar documentos similares ao titulo */
DECLARE @Titulo as NVARCHAR(1000)
DECLARE @DocID as UNIQUEIDENTIFIER

SET    @Titulo = ‘1TBin30MwithSSIS.docx’

SELECT @DocID = stream_id FROM tblDocumentos WHERE name = @Titulo

SELECT @Titulo AS SourceTitle, name AS MatchedTitle, stream_id, score
FROM semanticsimilaritytable(tblDocumentos, *, @DocID)
INNER JOIN tblDocumentos ON stream_id = matched_document_key
ORDER BY score DESC
GO

image

Função 3: semanticsimilaritydetailstable

Utilização: Retorna uma lista de termos mais importantes entre os dois documentos comparados, ou seja, estou perguntando ao SQL Server porque eles se parecem.

Consulta:

/* Porque os dois documentos se parecem??? Quais os termos mais relevantes entre eles?? */
DECLARE @SourceTitle as NVARCHAR(1000)
DECLARE @MatchedTitle as NVARCHAR(1000)
DECLARE @SourceDocID as UNIQUEIDENTIFIER
DECLARE @MatchedDocID as UNIQUEIDENTIFIER

SET    @SourceTitle = ‘1TBin30MwithSSIS.docx’
SET @MatchedTitle = ‘DataLoadPerfGuide.docx’

SELECT @SourceDocID = stream_id FROM tblDocumentos WHERE name = @SourceTitle
SELECT @MatchedDocID = stream_id FROM tblDocumentos WHERE name = @MatchedTitle

SELECT @SourceTitle AS SourceTitle, @MatchedTitle AS MatchedTitle, keyphrase, score
FROM semanticsimilaritydetailstable(tblDocumentos, file_stream, @SourceDocID, file_stream, @MatchedDocID)
ORDER BY score DESC
GO

image

Como podemos ver as consultas semanticas nos fornecem um belo caminho a entender com quais documentos estamos trabalhando, com certeza uma serie de soluções podem ser aplicadas.

Ah, só uma dica para o pessoal. Existe um projeto no Codplex chamado MySemanticSearch que abstrai a camada de codigo do Semantic Search e mostra de uma maneira muito mais legal esse novo conceito. Os pecursores desse projeto são desenvolvedores do proprio time de FTS (Full Text Search) e também uma outra pessoa do time de SQL Azure.

Espero que tenham gostado desse post. E claro chegamos ao fim da demonstração do FileTable, Full Text Search e Semantic Search, mas quando eu encontrar algum assunto interessante sobre o mesmo, eu volto a falar aqui.

Abraços,
Marcos Freccia
[MCTS|MCITP|MCT SQL Server 2008]

Sobre Marcos Freccia

MVP em SQL Server (Data Plataform) , especialista em SQL Server, e atualmente trabalhando com Microsoft Azure!

Publicado em junho 5, 2012, em Administração, MCITPSC, SQL Server, SQL Server 2012, SQL Server Denali, VirtualPass e marcado como , , , . Adicione o link aos favoritos. 1 comentário.

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: