Instale y use Elasticsearch con MongoDB en Windows y Ubuntu

Mehvish Ashiq 16 febrero 2024
  1. ¿Qué es la búsqueda elástica?
  2. Instalar Elasticsearch en Windows 10
  3. Instalar Elasticsearch en Ubuntu 20.04
  4. la razón principal para usar Elasticsearch con MongoDB
Instale y use Elasticsearch con MongoDB en Windows y Ubuntu

Este artículo es una guía de instalación y configuración paso a paso para Elasticsearch en Windows y Ubuntu 20.04. También demuestra el uso de Elasticsearch con MongoDB para ambos sistemas operativos.

¿Qué es la búsqueda elástica?

Elasticsearch es una base de datos NoSQL, un motor de análisis y distribución en tiempo real de código abierto diseñado para almacenar registros. El Elasticsearch está desarrollado en programación Java y sobre un Apache Lucene.

Muchas empresas conocidas, incluidas LinkedIn y OpenStack, lo utilizan. Admite la búsqueda de texto completo basada en los documentos en lugar de esquemas y tablas.

También se utiliza para la migración, indexación y sincronización de datos. Elasticsearch es la mejor opción cuando la aplicación necesita demasiadas operaciones de búsqueda y filtros.

Instalar Elasticsearch en Windows 10

Paso 1: comprueba si Java está instalado

Para instalar Elasticsearch en Windows 10, debemos tener la última versión de Java instalada en nuestra máquina. También puede usar cualquiera de los siguientes comandos para confirmar que Java ya está instalado en su máquina.

Recuerda, debemos tener Java versión 7 o superior si queremos instalar Elasticsearch.

instale y use elasticsearch en windows y ubuntu - verifique la versión de java en windows

Paso 2: Descargue el archivo .zip de Elasticsearch

Vaya a este sitio web y haga clic en el enlace de descarga en la siguiente captura de pantalla. A continuación, seleccione la plataforma en la que queremos usar Elasticsearch y descargue el archivo .zip.

instale y use elasticsearch en windows y ubuntu - descargue elasticsearch en windows

Paso 3: Ejecute el archivo Batch de Elasticsearch

Una vez que descarguemos el archivo .zip, descomprímalo en la ubicación deseada. Luego, navegue a la carpeta bin y haga doble clic en el archivo Batch elasticsearch.

instale y use elasticsearch con mongodb en windows y ubuntu - ejecute elasticsearch en windows

No es más que un archivo Batch estándar de Windows con pasos realizados entre bastidores. Además, ayuda a abrir el daemon de Elasticsearch en su máquina que se verá de la siguiente manera.

Déjelo abierto y siga los siguientes pasos.

instale y use elasticsearch en windows y ubuntu - elasticsearch daemon en windows

Paso 4: deshabilite la autenticación (solo con fines de aprendizaje)

De manera predeterminada, la autenticación está habilitada, lo que significa que debemos ingresar las credenciales de inicio de sesión. Puede usar las credenciales de inicio de sesión predeterminadas o cambiarlas siguiendo esta página.

Para este artículo, estamos deshabilitando la autenticación (es solo con fines de aprendizaje, pero se recomienda en el entorno de producción). Usamos Notepad para abrir el archivo elasticsearch.yml que se encuentra en la ruta %ES_HOME%\config\elasticsearch.yml.

Aquí, ES_HOME es su directorio de inicio de Elasticsearch. Por ejemplo, en nuestro caso, el elasticsearch.yml se puede ubicar en C:\Users\DelftStack\Desktop\elasticsearch-8.2.2-windows-x86_64\elasticsearch-8.2.2\config.

Una vez abierto el archivo elasticsearch.yml, busque la opción xpack.security.enabled y haga que su valor sea false, como se muestra en la captura de pantalla a continuación.

instale y use elasticsearch en windows y ubuntu - deshabilite la autenticación elasticsearch en windows

Detenga Elasticsearch y comience de nuevo ejecutando el archivo elasticsearch.bat.

Paso 5: Ejecute Elasticsearch en el navegador

Escriba http://localhost:9200 en su navegador favorito. Si ve una página similar a la siguiente captura de pantalla, Elasticsearch está funcionando correctamente.

instale y use elasticsearch en windows y ubuntu - elasticsearch está funcionando en windows

Instalar Elasticsearch en Ubuntu 20.04

Paso 1: instale las dependencias requeridas

Índice de paquete de actualización/actualización:

sudo apt update
sudo apt upgrade

Al igual que el sistema operativo Windows, también se requiere Java en Ubuntu para instalar Elasticsearch. Si aún no está instalado, ejecute el siguiente comando para instalar el JDK predeterminado en Ubuntu 20.04.

sudo apt install openjdk-8-jdk

Una vez instalado, utilice la java -version para comprobar si está allí.

instale y use elasticsearch en windows y ubuntu - verifique la versión de java en ubuntu

También necesitamos instalar un paquete APT Transport para dar acceso a todos nuestros repositorios a través de HTTPS.

sudo apt install apt-transport-https

instale y use elasticsearch en windows y ubuntu - instale apt transport en ubuntu

Paso 2: descargue e instale Elasticsearch en Ubuntu

El siguiente trabajo es agregar el repositorio de Elasticsearch. Utilice la consulta wget para obtener la clave pública.

Debes tener el OK como salida si todo va bien.

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -

instale y use elasticsearch con mongodb en windows y ubuntu - agregue el repositorio de elasticsearch en ubuntu

Ahora, agregue el repositorio al sistema ejecutando el siguiente comando. Estamos escribiendo el 8.x en el siguiente comando porque esta es la última versión al momento de escribir este tutorial.

echo "deb https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-8.x.list

Una vez más, actualice el índice del paquete utilizando el comando que se indica a continuación.

sudo apt update

Instale Elasticsearch ejecutando el siguiente comando. Puede tomar algún tiempo para instalar.

Entonces, deja que se complete con éxito.

sudo apt install elasticsearch

instale y use elasticsearch en windows y ubuntu - instale elasticsearch en ubuntu

Después de la instalación, tenemos que iniciar Elasticsearch porque no se inicia solo. También necesitamos volver a ejecutar Elasticsearch si reiniciamos la máquina.

Para evitar esta situación, ejecute los siguientes comandos para recargar automáticamente Elasticsearch después de que el sistema se reinicie.

sudo systemctl daemon-reload
sudo systemctl enable elasticsearch.service
sudo systemctl start elasticsearch.service

Ahora, verifique el estado de Elasticsearch usando el siguiente comando.

sudo systemctl status elasticsearch

instale y use elasticsearch en windows y ubuntu - estado de elasticsearch en ubuntu

Paso 3: Configurar Elasticsearch

De forma predeterminada, Elasticsearch está preconfigurado para uso básico. No tenemos que hacer ningún cambio en el archivo de configuración si queremos usar un nodo en nuestra configuración.

Si desea editar la configuración de Elasticsearch, edite el archivo elasticsearch.yml en el directorio /etc/elasticsearch. También puede encontrar la configuración para iniciar sesión en /var/log/elasticsearch/logging.yml.

Estamos editando el archivo elasticsearch.yml para deshabilitar la autenticación para este tutorial. Cambiamos el valor de xpack.security.enabled de true a false.

Recuerda, siempre que edites el archivo elasticsearch.yml, no olvides reiniciar los servicios usando el siguiente comando.

sudo systemctl restart elasticsearch.service

Luego, use el siguiente comando para verificar si Elasticsearch está en funcionamiento.

curl localhost:9200

instale y use elasticsearch en windows y ubuntu - elasticsearch está funcionando en ubuntu

También podemos escribir http://localhost:9200 en el navegador, y debería mostrar los mismos resultados que el comando curl anterior. Además, puede consultar este artículo para asegurar Elasticsearch.

instale y use elasticsearch con mongodb en windows y ubuntu - ejecute elasticsearch en ubuntu

la razón principal para usar Elasticsearch con MongoDB

Usamos MongoDB para almacenar y consultar los datos, mientras que Elasticsearch se usa para la indexación de texto completo sobre los datos. Por lo tanto, la combinación de ambos (Elasticsearch para indexación y MongoDB para almacenamiento) es una de las arquitecturas comunes que siguen muchas empresas.

Elasticsearch se desarrolló con fines de búsqueda y también proporciona capacidades avanzadas para la indexación de datos. Funciona junto con Kibana y Logstash para el análisis de datos.

Una de las ventajas de usar Elasticsearch es que proporciona una búsqueda rápida de todos los campos dentro del documento especificado. Podemos pensar en ello como tener nuestra búsqueda personal de Google para nuestros datos.

También podemos usar el Elasticsearch en diferentes escenarios. Por ejemplo, podemos realizar la sincronización, crear un motor de búsqueda, migración de datos, indexación y más.

Aprenderemos a usar Elasticsearch con MongoDB con fines de sincronización para este tutorial.

Use Elasticsearch para realizar la sincronización

Tenemos que seguir los pasos que se indican a continuación para realizar la sincronización usando Elasticsearch y MongoDB en Windows/Ubuntu. Antes de eso, asegúrese de tener todas las dependencias.

Por ejemplo, estamos usando Node.js para este ejemplo de código. Además, siga ejecutando ambos motores de base de datos (MongoDB y Elasticsearch).

Después de eso, sigamos los pasos.

  • Importa los paquetes mongoose y mongoosastic.
  • Establezca una conexión exitosa con el motor MongoDB.
  • Cree un esquema MongoDB.
  • Use el complemento mongoosastic para conectarse con Elasticsearch.
  • Primero, cree el modelo MongoDB y luego, el mapeo de Elasticsearch.
  • Agregue datos a su base de datos MongoDB y debe sincronizarse con Elasticsearch.

Código de ejemplo (ponga todo el código en un archivo, lo tenemos en el archivo app.js):

// Step 1:
const mongoose = require('mongoose');
const mongoosastic = require('mongoosastic');

// Step 2:
mongoose.connect('mongodb://localhost:27017/studentdb');

// Step 3:
var StudentSchema =
    new mongoose.Schema({firstname: String, lastname: String, city: String});

// Step 4:
StudentSchema.plugin(mongoosastic, {'host': 'localhost', 'port': 9200});

// Step 5:
var Student = mongoose.model('student', StudentSchema);
Student.createMapping((err, mapping) => {
  console.log('mapping created');
});

// Step 6:
var newStudent =
    new Student({firstname: 'Mehvish', lastname: 'Ashiq', city: 'Lahore'});

newStudent.save((err) => {
  if (err) {
    console.log(err);
  }
  console.log('Student is added in both databases');
})

newStudent.on('es-indexed', (err, result) => {
  console.log('indexed to elastic search');
});

Ahora, ejecute este código; seria de la siguiente manera.

instale y use elasticsearch con mongodb en windows y ubuntu - ejecute el archivo

Confirme la entrada en MongoDB de la siguiente manera.

instale y use elasticsearch con mongodb en windows y ubuntu - confirme la entrada en mongodb

A continuación, abra http://localhost:9200/students/_search para confirmarlo también en Elasticsearch. Se verá similar a la siguiente captura de pantalla.

instale y use elasticsearch con mongodb en windows y ubuntu - confirme la entrada en elasticsearch

Mehvish Ashiq avatar Mehvish Ashiq avatar

Mehvish Ashiq is a former Java Programmer and a Data Science enthusiast who leverages her expertise to help others to learn and grow by creating interesting, useful, and reader-friendly content in Computer Programming, Data Science, and Technology.

LinkedIn GitHub Facebook