Te explicamos cómo funcionan las búsquedas con Solr, el concepto de buscador vertical, y también las funcionalidades de búsqueda de Solr, tales como el facetado en las búsquedas, los filtros de búsqueda y la clasificación de las búsquedas.

Sorl es un buscador vertical. Buscador genérico vs buscador vertical

Sorl es un buscador vertical. Un buscador vertical realiza su búsqueda sobre un número determinado de páginas o de documentos.

Frente a los buscadores verticales tipo Solr, nos encontraríamos los buscadores genéricos o buscadores horizontales, como por ejemplo Google. Google rastrea todas las páginas que sea capaz en Internet.

busqueda vertical vs busqueda horizontal

Solr permite el uso de filtros de búsqueda: qué es un filtro

Un filtro es una herramienta de búsqueda que permite al usuario restringir su búsqueda. Dicha restricción se podría hacer por ejemplo por tipos de documentos o por localización geográfica, etc

Veamos un ejemplo de filtrado de la web de Netflix, que hace uso de Solr. Observemos la imagen adjunta:

busqueda con filtros con Solr

En este caso hemos filtrado los resultados de búsqueda en Netflix, por el género de la película, indicando que deseamos que busque “comedias”. A continuación han aparecido las películas de catálogo de Netflix que cumplen con el criterio de ser comedias.

Búsqueda por facetas en Solr: que es la búsqueda por facetas

La búsqueda por facetas es semejante al filtrado, sin embargo en el caso de la búsqueda por facetas se presentan al usuario sugerencias de filtrado.

Por tanto, ayuda al usuario a estrechar la búsqueda sin que éste tenga que suponer como estrecharla.

Veamos un ejemplo de búsqueda por facetas de Netflix, observemos la imagen adjunta:

busqueda por facetas con Solr

En este caso, al buscar películas, la propia web de Netflix nos ha dado una serie de alternativas para nuestras búsquedas por género.

Solr permite clasificar los resultados: que es clasificar los resultados

En ocasiones, al realizar una búsqueda, por ejemplo de tiendas de electrónica, queremos que los resultados aparezcan ordenados en función de algún criterio, por ejemplo, la puntuación que les han dado los usuarios.

En esto consistiría una búsqueda donde se clasifica: se presentan los resultados de la búsqueda ordenados por algún criterio.

Busqueda con clasificación con Solr

En la imagen, se observa que Netflix hace una clasificación y nos presenta las 10 series más populares de más a menos, de manera que además de presentar los resultados de una búsqueda, los ordena de acuerdo a algún criterio, en este caso el criterio de popularidad.

Solr está basada en la tecnología NoSQL: ¿Cuál es la diferencia entre una base de datos SQL y una NoSQL?

Las Bases de datos SQL son bases de datos estructuradas y de tipo relacional, mientras que las bases de datos NoSQL son de tipo no-relacional y no están estructuradas.

Nos podemos imaginar una base de datos tipo relacional como una tabla con filas que son los registros (por ejemplo, alumno1, alumno2, etc) y columnas que son los campos (por ejemplo, nota de Matemáticas, nota de Literatura, etc).

tabla relacional

En cambio, las bases de datos no relacionales no tienen un identificador que sirva de nexo entre un conjunto de datos y otros. Esto será muy útil cuando no tenemos un esquema exacto de lo que se va a almacenar.

base de datos no relacional

De manera que las bases de datos no relacionales, o NoSQL, son más flexibles y no necesitan saber de antemano qué información se va a almacenar y cómo va a ser almacenada.

Así pues, si vamos a construir una base de datos a partir de una serie de documentos de texto cuya información desconocemos de antemano, necesitaremos de la flexibilidad de una base de datos NoSQL.

bases de datos sql vs bases de datos nosql

Sin embargo, Solr aporta algunas funcionalidades adicionales respecto tecnologías puramente NoSQL como por ejemplo Mongo (aquí encontrarás muchas más) , tales como, la búsqueda por facetas o la clasificación de las búsquedas. En este artículo discute los elementos que Solr toma de las bases de datos NoSQL y SQL.