Instale y use Elasticsearch con MongoDB en Windows y Ubuntu
- ¿Qué es la búsqueda elástica?
- Instalar Elasticsearch en Windows 10
- Instalar Elasticsearch en Ubuntu 20.04
- la razón principal para usar Elasticsearch con MongoDB
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.
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
.
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
.
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.
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.
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.
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í.
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
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 -
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
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
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
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.
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
ymongoosastic
. -
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.
Confirme la entrada en MongoDB de la siguiente manera.
A continuación, abra http://localhost:9200/students/_search
para confirmarlo también en Elasticsearch. Se verá similar a la siguiente captura de pantalla.