Introducción a Azure Search

Microsoft Azure Search es un servicio de búsqueda de texto completo (full-text search) implementado sobre la plataforma de Microsoft Azure. Este servicio nos da la posibilidad de implementar búsquedas complejas y potentes, sin tener que preocuparnos por mantener la infraestructura, incluso sin ser expertos en búsqueda.

Un poco de historia detrás de Azure Search

Apache Lucene

Logo Lucene

Lucene Core es un proyecto hecho en Java, que provee tecnología de indexado y búsqueda, como así también chequeo ortográfico, resaltado de coincidencias y capacidad avanzada de análisis/tokenización.

Lucene.Net

Logo Lucene.Net

Para desarrolladores del mundo .NET existe un port de Lucene: Lucene.Net, aunque el mismo está un poco por detrás de la implementación en Java (actualmente en versión 3.0.3.0 vs. 5.0.0).

Apache Solr

Logo Solr

Solr es un servidor de búsqueda de alta performance, construido por sobre Lucene Core, con APIs XML/HTTP y JSON/Python/Ruby, resaltado de coincidencias, búsqueda facetada, caché, replicación, y una interfaz de administración web. Para implementarlo debemos manejar nuestra propia infraestructura.

Elasticsearch

Logo Elasticsearch

Elasticsearch es un motor de búsqueda en tiempo real y analíticas, open source, flexible y distribuido, creado por Elastic. Su arquitectura está pensada desde el inicio para manejarse en ambientes distribuidos, en los que la confiabilidad y escalabilidad son absolutamente necesarias. Es orientado a documentos, libre de schema, multi-tenant, tiene alta disponibilidad, manejo de conflictos y una API RESTful, usando JSON sobre HTTP. Al igual que Solr, está construido sobre Lucene. Y también necesitamos administrar nuestra propia infraestructura.

Azure Search

Logo Azure Search

Azure Search implementa Elasticsearch como un servicio, por lo cual no deberemos preocuparnos de la infraestructura necesaria para correrlo, siendo Microsoft el responsable de proveernos escalabilidad, replicación y un SLA sobre el servicio.

Características

  • Full-text search: permite hacer búsquedas de texto completo de una forma rápida y eficiente. Encontrando también palabras similares, gracias al uso de los analizadores de texto de Lucene.
  • Multi lenguaje: soporta más de 50 lenguajes, basándose en los analizadores definidos en Lucene, y Microsoft está añadiendo los analizadores de lenguaje natural incluidos en Office y Bing (disponibles en la versión 2015-02-28-preview). (Listado de lenguajes soportados)
  • Escalable en incrementos de espacio de almacenamiento y cantidad de documentos (particiones) o en carga de consutas (réplicas). Cada réplica corre una copia del índice. Para alta disponibilidad se requiere de 2 réplicas para la carga de trabajo de consultas, y 3 réplicas para la carga de trabajo de lectura-escritura (consultas e indexado).
  • Schema-free: no tenemos un esquema rígido, y podremos agregar nuevos campos a nuestro índice sin problemas.
  • APIs REST con contenido en formato JSON. Hay una API para acceder al servicio, y una para gestionar el servicio.
  • Filtrado: aparte de las búsquedas de texto completo, nos permite aplicar filtros sobre aquellos campos que hayan sido marcados como filtrables.
  • Facetado: Una faceta (o facet) se podría definir como la categorización cuantitativa de un documento en un área determinada. Es básicamente el agrupamiento de documentos por una dimensión en particular, junto a la cantidad de elementos que la contiene.
  • Geo-locación: permite realizar búsquedas basadas en una ubicación geográfica, como por ejemplo, todos los documentos que se encuentren a menos de una cierta distancia de un punto.

Niveles de servicio

Al momento de esta publicación, el servicio tiene disponibles dos niveles de servicio: Gratuito y Estándar.

Franjas de precios

¿Cómo creo el servicio?

Lo primero que haremos es ir al nuevo portal de Azure, y de ahí al botón “Nuevo”, que se encuentra en la esquina inferior izquierda:

Nuevo

Luego elegimos la opción de “Data + storage”:

Data + storage }

Y luego “Search”:

Azure Search

Completamos los datos de:

  • Nombre
  • Franja de precios
  • Grupo de recursos
  • Ubicación

Y seleccionamos “Crear”:

Nuevo Servicio de Búsqueda

Con esto ya tendremos creado nuestro servicio de búsqueda!

Servicio de búsqueda

En el próximo post, les mostraré como usar el servicio desde .NET, con el SDK oficial.

Saludos!

@gjbellmann

Actualización 30/Mar/2015: incluído link al próximo post.

4 pensamientos en “Introducción a Azure Search

  1. Pingback: Usando Azure Search desde .NET | Guillermo Bellmann

  2. Pingback: Sincronización de DocumentDB a Azure Search usando indexadores | Guillermo Bellmann

  3. Pingback: Sincronización de Azure SQL Database a Azure Search usando indexadores | Guillermo Bellmann

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s