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

Olá pessoal,

No ultimo post vimos como habilitar o Full Text Search e Semantic Search no SQL Server 2012. E nesse post de hoje vamos trazer um pouquinho do que o essas duas features podem agregar de valor para os futuros desenvolvimentos.

A primeira função que vamos ver hoje é a possibilidade do Full Text Search realizar pesquisas por propriedades como: Autor, Tags e Titulo.

A consulta é bastante simples, apenas especificamos qual o tipo de propriedade que desejamos consultar e inserir a palavra de busca.

1) Consultando pela propriedade Autor onde o nome for Lindsey Allen. Lembrando que sempre que trabalharmos com mais de um nome na pesquisa voce nao pode esquecer de colocar aspas duplas (“ “).

select name as Documento, file_type as Extensao from tblDocumentos
where CONTAINS(PROPERTY(file_stream,’Author’),'”Lindsey Allen”‘)

Resultado
AuthorTag

2) Realizando a pesquisa por mais de um autor.

select name as Documento, file_type as Extensao from tblDocumentos
where CONTAINS(PROPERTY(file_stream,’Author’),'”Sylvio Hellmann” OR “Lindsey Allen”‘)

Resultado

image

3) Pesquisar por titulos de livro

select name as Documento, file_type as Extensao from tblDocumentos
where CONTAINS(PROPERTY(file_stream,’Title’),’SQL’)

Resultado

image

Operadores de aproximação.

Quando desejamos realizar uma pesquisa por palavras que estao proximas uma das outras utilizamos o operador NEAR na consulta em um full text search index, porem nao conseguimos especificar ate o SQL Server 2008 o quao proximo uma palavra deve estar da outra para retornar a consulta com sucesso ou a sequencia de retorno das palavras. É por isso entao que no SQL Server 2012 o operador NEAR foi melhor trabalhado para que pudessemos entao especificar a quantas palavras de distancia uma estaria da outra e qual a sequencia das palavras. Então vamos a primeira consulta.

1) Buscar a palavra MICROSOFT apenas se estiver em um grau de até 3 palavras perto de MSDTC nao importando a ordem de busca.

select name as Documento, file_type as Extensao from tblDocumentos
where CONTAINS(*,’near((Microsoft,MSDTC),3,false)’)

Resultado

image

Verificando o documento

image

2) Buscar as MSDTC e MICROSOFT apenas se estiver em um grau de proximidade de até 3 palavras, porem a sequencia obrigatoriamente necessita ser primeiro MSDTC e depois a palavra MICROSOFT.

select name as Documento, file_type as Extensao from tblDocumentos
where CONTAINS(*,’near((MSDTC,Microsoft),3,true)’)

Resultado

image

Como podem  ver o resultado nao trouxe nenhum valor, pois nao temos a existencia desses termos nessa ordem dentro de nenhum documento.

Pessoal, esse foi um pouco das novidades do Full Text Search e Semantic Search, espero que tenham gostado e ao passar dos dias vou postando as demais novidades.

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 May 17, 2012, in Administração, SQL Server 2012 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: