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]

Advertisements

About Marcos Freccia

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

Posted on June 5, 2012, in Administração, MCITPSC, SQL Server, SQL Server 2012, SQL Server Denali, VirtualPass and tagged , , , . Bookmark the permalink. 1 Comment.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: