Apache Solr, una plataforma de búsqueda de nivel empresarial basada en la biblioteca Apache Lucene, es una herramienta poderosa y popular utilizada por grandes empresas de internet como Adobe, Netflix e Instagram. Ofrece alta disponibilidad, escalabilidad y tolerancia a fallos, lo que lo convierte en una excelente elección para la construcción de aplicaciones empresariales.

Instalación de Java OpenJDK 11

Para ejecutar Apache Solr, necesitamos instalar Java OpenJDK 11. Sigue estos pasos:

  1. Actualiza la lista de paquetes de tu sistema:
sudo dnf update
  1. Instala Java OpenJDK 11:
sudo dnf install java-11-openjdk java-11-openjdk-devel
  1. Verifica la versión de Java:
java --version

Deberías ver la versión instalada de Java OpenJDK 11.

Instalación de Apache Solr

Una vez que tengas instalado Java OpenJDK 11, puedes proceder con la instalación de Apache Solr:

  1. Instala los paquetes necesarios:
sudo dnf install curl lsof chkconfig -y
  1. Descarga el paquete binario de Apache Solr (versión 9.2.1):
curl -so https://downloads.apache.org/solr/solr/9.2.1/solr-9.2.1.tgz
  1. Extrae el script del instalador:
tar xzf solr-9.2.1.tgz solr-9.2.1/bin/install_solr_service.sh--strip-components=2
  1. Instala Apache Solr:
sudo bash ./install_solr_service.sh solr-9.2.1.tgz
  1. Detén el proceso actual de Apache Solr:
sudo service solr stop
  1. Inicia el servicio de Apache Solr:
sudo service solr start
  1. Verifica el servicio de Apache Solr:
sudo service solr status

Si Apache Solr está en ejecución, deberías ver una salida similar confirmando su estado.

Optimización de la instalación de Apache Solr

Para optimizar el rendimiento de Apache Solr, puedes configurar su memoria máxima y la dirección IP interna. Sigue estos pasos:

  1. Aumenta los valores shmmax y nr_hugepages:
sudo echo 4294967295 > /proc/sys/kernel/shmmax
sudo echo 1536 > /proc/sys/vm/nr_hugepages
  1. Abre el archivo solr.in.sh:
sudo nano /etc/default/solr.in.sh
  1. Descomenta el parámetro SOLR_HEAP y establece la memoria máxima deseada (por ejemplo, 4g):
SOLR_HEAP="4g"
  1. Descomenta los parámetros SOLR_JETTY_HOST y SOLR_HOST y establece tu dirección IP interna:
SOLR_HOST=""
SOLR_JETTY_HOST=""
  1. Guarda los cambios y sal del editor.
  2. Reinicia el servicio de Apache Solr:
sudo service solr restart
  1. Verifica el estado de Apache Solr:
sudo service solr status

Configuración de Ulimits y Firewalld

Para asegurar que Apache Solr funcione sin problemas, necesitas configurar los procesos máximos y los archivos abiertos máximos, y abrir el puerto necesario en firewalld. Sigue estos pasos:

  1. Abre el archivo limits.conf:
sudo nano /etc/security/limits.conf
  1. Agrega la siguiente configuración al final del archivo:
solr soft nofile 65000
solr hard nofile 65000
solr soft nproc 65000
solr hard nproc 65000
  1. Guarda el archivo y sal del editor.
  2. Comprueba los procesos máximos y los archivos abiertos máximos:
sudo -H -u solr bash -c "ulimit -aH"

Asegúrate de que ambos ajustes muestren un valor de 65,000.

  1. Reinicia el servicio de Apache Solr:
sudo service solr restart
  1. Abre el puerto 8983 en firewalld:
sudo firewall-cmd --add-port=8983/tcp --permanent
  1. Recarga firewalld para aplicar los cambios y verifica las reglas:
sudo firewall-cmd --reload
sudo firewall-cmd --list-all

Deberías ver el puerto 8983 listado en las reglas de firewalld.

Seguridad de Apache Solr con autenticación básica

Por defecto, Apache Solr se instala sin autenticación, lo cual puede ser un riesgo de seguridad. Para asegurarlo, habilitaremos la autenticación básica. Sigue estos pasos:

  1. Crea un archivo security.json:
sudo nano /var/solr/data/security.json
  1. Inserta la siguiente configuración para crear un nuevo usuario con el nombre de usuario y contraseña deseados:
{
"authentication":{
"blockUnknown": true,
"class":"solr.BasicAuthPlugin",
"credentials":{"solr":"IV0EHq1OnNrj6gvRCwvFwTrZ1+z1oBbnQdiVC3otuq0= Ndd7LKvVBAaZIF0QAVi1ekCfAJXr1GGfLtRUXhgrF8c="},
"realm":"My Solr users",
"forwardCredentials": false
},
"authorization":{
"class":"solr.RuleBasedAuthorizationPlugin",
"permissions":[{"name":"all", "role":"admin"}],
"user-role":{"solr":"admin"}
}
}
  1. Guarda el archivo y sal del editor.
  2. Reinicia el servicio de Apache Solr:
sudo service solr restart
  1. Actualiza el panel de administración de Apache Solr en tu navegador web.
  2. Ahora deberías ver una página de inicio de sesión. Introduce el nombre de usuario y la contraseña que estableciste en el archivo security.json.
  3. Una vez autenticado, puedes acceder al panel de Apache Solr.

Creación de tu primer índice Solr

Con Apache Solr instalado y asegurado, ahora puedes crear tu primer índice Solr. Sigue estos pasos:

  1. Abre el archivo solr.in.sh:
sudo nano /etc/default/solr.in.sh
  1. Descomenta los parámetros SOLR_AUTH_TYPE y SOLR_AUTHENTICATION_OPTS.
  2. Guarda el archivo y sal del editor.
  3. Reinicia el servicio de Apache Solr:
sudo service solr restart
  1. Crea un nuevo índice Solr:
su- solr -c "/opt/solr/bin/solr create -c test1_core -n Test1Core"
  1. Verifica la creación del nuevo índice Solr en el panel de administración de Apache Solr.

Para soluciones de hosting en la nube confiables y escalables, considera los servicios de VPS SSD de Linux de Shape.host. Shape.host ofrece servicios de hosting de primera calidad, empoderando a las empresas con soluciones eficientes, escalables y seguras. Visita Shape.host para más información.