Aplicando Azure Search en Sistemas Hibridos

Preview:

Citation preview

Aplicando Azure Search en sistemas híbridos

Jose RedondoMicrosoft Data Platform MVP Latam

Quien soy?

Jose RedondoData Platform MVP Latam | Arquitecto de datos | Experto en soluciones de Inteligencia de Negocio y Bodegas de datos | Consultor | Conferencista Microsoft en Latinoamérica y USA

Amante del compartir el conocimiento tecnológico y la buena cultura

Twitter: @redondojLinkedIn: linkedin.com/in/redondojBlog: redondoj.wordpress.comE-Mail: redondoj@gmail.com

Agenda• Intro• Estructura• Escenarios de uso• Servicios• Índices• Indexar datos

DEMO• Buscar datos• Optimizar resultados

DEMO• Conclusiones

IntroPorque buscar es importante

Intro

La era Altavista / Netscape, :-/

Intro

La era Google / Bing, !!!

Intro• Definición

Una solución de búsqueda como un servicio (SaaS) permitiendo a los desarrolladores incorporar

experiencias de gran búsqueda en aplicaciones sin gestión de infraestructura o necesidad de ser

expertos en búsqueda.

Búsqueda como u

n

Servicio (S

aaS)

Palabras claves

Sugerencias

Geo-Espacial

Ranking personalizado

56 lenguajes soportados

Estructura

ServiciosÍndice

Indexar datosBuscar datos

Optimizar resultados

EstructuraArquitectura

EstructuraProceso

EstructuraProceso

Escenarios de usoApps con contenidos habilitados para generar búsquedas eficientes contrarias a navegar:• Comercio electrónico• Redes sociales• Aplicaciones empresariales

Comercio electrónico

Redes sociales

Aplicaciones empresariales

Búsqueda como servicio es:• Ámbito de capacidad.

Cobro. Autenticación• Administrado a través

del Portal o la API de gestión• Puede tener uno o más

índices• Nombre del servicio ->

API root URL https://myapp.search.windows.net

Servicios

ServiciosCreación

ServiciosCreación

ServiciosCreación

ÍndicesQue son?

• Una colección de documentos• Tiene un esquema (Schema)• Tiene varias opciones.

• Scoring Profile, CORS• Estructura de nombramiento:

• Nombre de índice -> API URL https://myapp.search.windows.net/indexes/myindex

Índices

Azure SQL Database

Document DB

Blob Storage

ÍndicesArquitectura (Schema)

Lista de campos y sus propiedades (Configuraciones):• Tipo de datos: STRING, INT, DOUBLE, DATATIME, BOOLEAN, GEO-POINT• Valores simple o Colecciones

Cada campo puede ser usado para:• Búsquedas • Sugerencias• Filtros

• Ordenamiento• Dimensionamiento

(Facetas)• Resultados

ÍndicesCreación

POST /indexes/myindex?api-version=2016-08-26Host: myapp.search.windows.netapi-key: [XYZ009]Content-Type: application/json

{ "fields": [ {"name": “STR_IDPlaza","type": "Edm.String", "key": true}, {"name": “STR_Nombre", "type": "Edm.String"}, {"name": “STR_Tipo", "type": "Edm.String" } ], "corsOptions": { "allowedOrigins": [ "*" ] }}

Indexar datos

• Datos indexados por lotes• Operaciones de hasta 1000:

• Carga (Upload), Combinaciones (Merge), Eliminaciones (Delete), o MergeOrUpload

• POST para• …/indexes/myindex/docs/index

Indexar datos

• Una respuesta de éxito asegura Durabilidad / Estabilidad• Las necesidades del cliente para comprobar el cuerpo de la

respuesta para el estado de operaciones individuales

Indexar datos

• Los datos se podrá buscar unos segundos más tarde• Los datos deben ser indexados, dependiendo de lo cargado

que se encuentre en sistema

API – Carga de lotesPOST /indexes/myindex/docs/index?api-version=2016-08-26Host: myapp.search.windows.netapi-key: [XYZ009]Content-Type: application/json

{ "value": [ { "@search.action": "upload", "STR_IDPlaza": “0123456789", "STR_Nombre": “EntornoDB LLC...", "STR_Tipo": “Consulting Firm", ... }, ... ]}

Criterios de indexaciónPush

• .NET SDK• REST API

Pull• Azure SQL Database• SQL Server hosted in Azure

Virtual Machine (VM)• DocumentDB• Blob Storage

Demo

Buscar datos• Ámbito de búsqueda es un índice• El API de búsqueda ofrece una

serie de opciones• Búsqueda de texto completo

incluyendo operadores fácil de usar• Soporte en Query: Filtros estrictos,

Ordenación, Paginación y Selección de campo

• Faceting• Hit highlighting

• Los resultados incluyen scores de los campos más solicitados

API: Search (Búsqueda)

• Búsqueda simple:• …/docs/search=La búsqueda que todos

deseamos tener en un momento dado.• Búsqueda con filtraje estricto:

• …/docs?search=BI&$filter=STR_Tipo eq ‘Consulting Firm'

• Búsqueda con Ordenación, Paginación y Selección de campo:• …/docs?search=BI&$orderby=STR_Nombre

asc&$top=5&$select=STR_Nombre• Faceting:

• …/docs?search=BI&facet=STR_Tipo• Hit highlighting:

• …/docs?search=BI&highlight=HH_STR_Nombre

Búsqueda Geo-Espacial

• Búsqueda en documentos en determinado km de distancia de mi lugar

• Ordenar los resultados por la distancia de mi ubicación• Buscar los documentos dentro de un polígono dado

Sugerencias de Búsqueda

• Building block para completar automáticamente• Delicado equilibrio de la

velocidad y características• Sugerencias provienen

de datos de documentos

Optimizar resultados• Por defecto: Ranking basado

en la relevancia del texto• Anotando los resultados

obtenidos de los perfiles para las puntuaciones de optimización• Valores de los campos:

Importancia relativa• Funciones de ranking: Describen

lo que realmente te importa• Uno o más perfiles de ranking

para diferentes escenarios

Demo

Conclusiones• Establecer los servicios a

utilizar• Generar y optimizar los índices

con la finalidad de establecer una navegación efectiva a través de lo que se busque• Establecer las tecnologías a

implementar independientemente de la plataforma donde desarrollemos nuestras aplicaciones

Preguntas & Respuestas

Recursos

• Azure Search• MSDN• Channel 9

Gracias por su asistenciaAzure Search