Date post: | 11-Jan-2017 |
Category: |
Data & Analytics |
Upload: | jose-redondo |
View: | 94 times |
Download: | 1 times |
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: [email protected]
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