¡Hablando de Elasticsearch: ¿Qué es una búsqueda y qué es un filtro?

Hablando de Elasticsearch: ¿Qué es una búsqueda y qué es un filtro?

Para aquellos que no estén muy familiarizados con Elasticsearch, los conceptos de búsqueda y filtro pueden llegar a confundirse; para entenderlos con facilidad, abordaremos primero las definiciones de búsqueda y filtro, luego entenderemos el comportamiento de un campo en una búsqueda y finalmente veremos cómo se refleja éste en la estructura de un query de Elasticsearch.

Empecemos por las definiciones. El diccionario de la RAE define Buscar cómo un "sistema de selección en un proceso según criterios previamente establecidos" Por ejemplo, todos los días cuando me levanto, voy a la cocina, abro la alacena y entre todo lo que hay allí, saco el paquete de café, de este último, saco tres cucharadas de café en polvo para prepararme un latte.

La acción que hago cuando saco el café, es una búsqueda. Entre mi DataSet original que es todo lo que guardo en la alacena, estoy buscando el producto que cumpla con una condición, para este ejemplo, esa condición es que sea café; ahora, en el momento que yo separo tres cucharadas para prepararme mi latte, estoy filtrando, puesto que estoy tomando el resultado de mi búsqueda y estoy seleccionando una parte de este resultado.

Teniendo estos conceptos más claros, podemos entender el comportamiento de un campo en una búsqueda. Cuando estamos implementando un buscador, pueden surgir dudas de si un campo aplica para una búsqueda o un filtro. Parece trivial, pero puede no ser una tarea fácil, pues un campo puede ser buscado y a la vez ser usado como un filtro. De manera que para poder definir a cuál aplica, necesitamos entender que somos humanos y nuestras acciones al buscar tienden más a lo general que a lo específico, para lo cual es importante tener en cuenta una serie de tips que nos ayuden a diferenciar.

  1. Los campos numéricos, por ejemplo, un precio; son campos que por su naturaleza deben ser un filtro.
  2. Si un campo es un ID, sea numérico o alfanumérico, pierde sentido usarlo como filtro y si necesitamos proveer esta característica, este campo debe ser usado en una búsqueda.
  3. Los campos muy específicos normalmente deben proveer al usuario un filtro, puesto que es poco probable que los usen en la búsqueda.
  4. Las búsquedas suelen estar relacionadas con campos largos de texto o la combinación de varios campos cortos

Veamos un ejemplo real, al realizar una búsqueda en eBay. En la imagen podemos ver:

  1. En el numeral 1 la búsqueda, que para este caso es una Nintendo Switch.
  2. En el numeral 2 vemos un filtro que corresponde al código de región, algo que es poco probable que un usuario escriba en la barra de búsqueda, sin embargo, si las llegáramos a colocar, se aplicarían a la búsqueda.
  3. En el numeral 3 vemos el filtro de precio, que como podemos ver me sugiere unos rangos de precio o me permite ingresar uno.

Retomando la metáfora del café, seria una experiencia similar a buscar café con los ojos vendados y seleccionar la cantidad de café con un tenedor. Entendiendo estos conceptos estamos dando un primer paso para implementar un buscador en tu portal de forma correcta. Realizando búsquedas efectivas y precisas lograremos que los usuarios se sientan cómodos usando nuestro buscador.

Compartir:

Juan Montoya

  • 3 minutos de lectura

  • Jun 26, 2020