Cuando desarrollo aplicaciones, siempre me encuentro con situaciones en las que necesito buscar un determinado conjunto de texto dentro de un fragmento de datos. Yo, como muchos otros, suelo optar por el camino más fácil y hacer una consulta con comodines. Sin embargo, el uso de comodines en una consulta puede reducir considerablemente el rendimiento y la eficacia de la aplicación o la base de datos. Aquí es donde entra en juego la búsqueda de texto completo (FTS).

La búsqueda de texto completo opera sobre índices de texto completo y es mucho más eficiente que trabajar con comodines cuando se trata de buscar palabras y frases en una base de datos. Hasta ahora para hacer esto posible había que usar otro software de búsqueda como Solr o ElasticSearch. A partir de Couchbase 4.5, FTS está disponible como vista previa para desarrolladores para llevarlo a una única plataforma.

Vamos a echar un vistazo a cómo hacer uso de la búsqueda de texto completo en una aplicación Node.js utilizando el SDK de Node.js para Couchbase Server. Lo que viene a continuación asume que ya tienes Node.js instalado y listo para el desarrollo. También asume que estás usando Couchbase Server 4.5 o superior.

Para mantener las cosas simples vamos a trabajar en un nuevo proyecto Node.js con una historia simple. Empecemos creando un nuevo proyecto en alguna parte de nuestra máquina. Voy a llamar a este proyecto curriculum vitae. Como probablemente puedas adivinar por el nombre del proyecto, vamos a crear una aplicación de tipo parsing para currículums de solicitantes de empleo. Podemos utilizar FTS para buscar palabras clave o frases que sean relevantes para determinados puestos de trabajo. Como FTS ofrece puntuación de búsqueda, podemos ver qué candidatos podrían estar más cualificados para el puesto.

Creación de un nuevo proyecto Node.js

Utilizando un Terminal (Mac y Linux) o un Símbolo del sistema (Windows), ejecute lo siguiente con el proyecto como directorio activo actual:

El comando anterior inicializará un nuevo proyecto Node.js. A partir de ahora, toda la actividad de Terminal y Símbolo del sistema se realizará con el proyecto como directorio de trabajo actual.

Vamos a crear más un script Node.js que una aplicación RESTful. Dicho esto, sólo hay un requisito de dependencia, y es el SDK de Couchbase Node.js. Para instalarlo, ejecuta lo siguiente desde el Símbolo del sistema o Terminal:

Aunque no vamos a empezar a codificar todavía, queremos crear nuestro archivo principal Node.js. Crear app.js en la raíz de su proyecto.

Creación de un índice de búsqueda de texto completo

Antes de empezar a utilizar la búsqueda de texto completo, debe crear un índice especial. Esto puede hacerse desde Índices -> Texto completo del panel de control administrativo de Couchbase.

En esta sección deberá elegir Nuevo índice de texto completo y elige el nombre y el cubo sobre el que aplicarlo. Para este ejemplo utilizaremos el por defecto y un índice de búsqueda de currículum. Nuestro índice será muy básico, por lo que les animo a consultar el documentación para que pueda satisfacer mejor sus necesidades.

Una vez creado el índice, haga clic en el botón Actualizar. En este punto puedes probarlo a través del panel de control o de tu propio código.

Desarrollo de la aplicación Node.js

Sólo para reiterar, este proyecto se mantendrá bastante simple. Puedes ampliar esta idea y crear una aplicación completa de evaluación de currículos. Para nosotros, sólo estamos arañando la superficie de las posibilidades.

Abra el archivo app.js e incluya el siguiente código JavaScript:

En lo anterior, estamos importando la dependencia que hemos descargado y estamos estableciendo una conexión con el clúster Couchbase de nuestra elección. En este caso se trata de un clúster de un solo nodo en mi máquina local.

Antes de empezar a realizar operaciones de búsqueda de texto completo, pensemos en nuestro modelo de datos. Digamos que cada currículum es un documento en la base de datos. Por ejemplo, aquí está mi currículum:

Sí, por supuesto, el anterior no es mi currículum real. Es sólo un ejemplo para ver con lo que vamos a trabajar. Ahora digamos que queremos encontrar todos los curriculums donde la persona tiene experiencia previa como desarrollador. En Node.js podríamos crear lo siguiente:

Dado que en mi historial laboral figuraba que era Defensor del Desarrollador, mi registro aparecerá. Sin embargo, la consulta FTS anterior es bastante vaga. Mientras aparezca "defensor del desarrollador" en cualquier propiedad del documento, lo sabremos. Tal vez queramos acotarla, concretamente al historial de empleo. En este caso podemos cambiar nuestra BúsquedaQuery a lo siguiente:

Obsérvese el uso de la campo ¿función? También puede utilizar campos y pasar un array de campos en los que buscar.

Hay muchas otras formas de buscar datos utilizando FTS y el SDK de Node.js. Para obtener más información sobre el uso de FTS, consulta la página documentación para desarrolladores o el Documentación de la API de Node.js.

Conclusión

Si alguna vez te encuentras en la necesidad de consultar datos comodín de una manera eficiente, Couchbase y el SDK de Node.js te tiene cubierto con su soporte para la búsqueda de texto completo (FTS). Hay escenarios mucho más complejos para la búsqueda de texto completo que los que he dado. Por ejemplo, tal vez quieras empezar a añadir condiciones a la búsqueda o ver información de facetas. Todo esto se puede leer en el Portal para desarrolladores de Couchbase.

Autor

Publicado por Nic Raboy, Defensor del Desarrollador, Couchbase

Nic Raboy es un defensor de las tecnologías modernas de desarrollo web y móvil. Tiene experiencia en Java, JavaScript, Golang y una variedad de frameworks como Angular, NativeScript y Apache Cordova. Nic escribe sobre sus experiencias de desarrollo relacionadas con hacer el desarrollo web y móvil más fácil de entender.

Dejar una respuesta