Curso de Drupal 8 (XVII): Sistemas de búsqueda de contenido: Search API e integración con Apache Solr

En este capítulo vamos a ver cómo se realizan las búsquedas en Drupal y cómo optimizarlas.

El módulo search_api_solr

Este módulo nos permite realizar búsquedas desde solr en vez desde la BBDD
Pare ello tendremos que instalar el módulo con el comando:
composer require drupal/search_api_solr
Debido a un error en una de las dependencias en el momento de escribir esta guía deberemos ejecutar:
composer require symfony/event-dispatcher:»4.3.4 as 3.4.99″ drupal/search_api_solr:^3.5
Después debremos habilitar el módulo search_api_solr
drush en search_api_solr
y el módulo search_api_solr_default, que nos facilitará la tarea de gestionar la conexión al servidor
drush en search_api_solr_defaults

Search API

A través de la url /admin/config/search/search-api podemos acceder al menú de configuración del módulo.
Desde aquí podemos configurar los dos elementos principales del Search API: el servidor y el índice.
Al principio los dos elementos nos aparecen configurados pero con un par de pasos podemos crearlos de golpe:

Aquí lo  más importante es darle un nombre que es obligatorio y decir que debe registrar el servicio de la BBDD con un mínimo de 1 palabra y que debe buscar por partes de una sólo palabra.

También puede seleccionares el servicio que queremos usar, bien el de database o el de Solr.

De esta manera permite usar distintos servicios con una misma configuración.

Después configuraremos el índice de la búsqueda:
Aquí es donde deberemos colocarle un nombre al índice de contenidos dependiendo de lo que queramos indexar, relacionarlo con un servidor, el que indicamos anteriormente y configurar cuándo debe indexarse el contenido. Normalmente suele recomendarse que se marque la opción Index ítems immediately.
A mayores disponemos de varias pestañas en la parte superior derecha:
  • Vista con el resumen del índice, desde ahí podemos mandar reindexar el contenido.
  • Editar: donde podemos cambiar la configuración base del índice.
  • Fields: donde podemos seleccionar los campos que queremos indexar.
  • Filters: los filtro que queremos realizar en la búsqueda.
Aquí la parte más importante es la de los campos de la búsqueda que realizamos a través de la pestaña Fields:
Como puede verse podemos seleccionar todos los campos que nos interesen.
A la derecha debería aparecernos el tipo de indexado, en el tipo de contenido con seleccionar texto sería suficiente ya que internamente utiliza un nombre de sistema o nombre máquina y es o es igual o no lo es. Pero en el resto de campos deberemos seleccionar Fulltext para poder buscar internamente dentro del campo.
Después de configurar todos los campos a indexar bastaría con irnos a la vista y comprobar que está todo el contenido indexado:
Si no está el contenido indexado debería pulsar en el botón Index Now.

Integración con Apache Solr

Para arrancar Solr hemos modificado el fichero de docker-compose para arrancar el servidor de manera sencilla:

solr:
  image: solr:7
  volumes:
    #- ./env/solr/blog:/opt/solr/server/solr/blog
    #- ./solr:/opt/solr/server/solr
    - solrdata:/var/lib/solr
  ports:
    - "8983:8983"
  restart: always

Esto significa que el servidor debería estar arrancado en:
http://localhost:8983/

Para configurar el indexado es necesario crear un core en el servidor de Solr que normalmente requiere pasar una configuración que hay como ejemplo en el módulo de search_api_solr, al directorio donde solr configura el core generado.

Si no siempre es posible gestionar desde el contenedor de solr:

solr create -c blog -n data_driven_schema_configs

Donde blog es el nombre que le damos al core que hay que configurar en drupal para que enganche con el servidor de solr.

Desde el Drupal deberíamos ir a la configuración del Servidor de  Solr

/admin/config/search/search-api

Debería aparecer la configuración de solr si el servidor está arrancado

Referencias

 

Comments

Leave a Reply

*

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Categorías de Cursos

RSS Cursos de Desarrollo

  • Balanceadores de Carga 27/01/2020
    Dentro de la arquitectura web necesitamos cumplir con dos condiciones si queremos que nuestra arquitectura sea suficientemente sólida: Alta Disponibilidad y Alto Rendimiento, en esta entrada veremos cómo cumplir con estos dos principios. La alta disponibilidad trata de conseguir que un servicio tenga el máximo posible de tiempo de disponibilidad, es decir, que el servicio […]
  • Serie de Artículos de Docker 13/01/2020
    En esta entrada veremos cómo manejar Docker, en una serie de artículos explicativos. No te los pierdas He instalado Docker, ¿Y ahora qué? Docker Compose, para cuando quieres arrancar varios contenedores de manera coordinada
  • ¿Que Frameworks de Frontend son los más utilizados en el millón de páginas del Top de Alexa? 09/01/2020
    Partiendo de la idea del blog de de Andros, y del post sobre su estudio del uso de WordPress con un ejemplo de Clojure. He iniciado un proyecto secundario sobre el uso de las tecnologías usadas en las, más de 1.000.000 principales webs de Internet según Alexa. La idea, es la de ampliar la publicación […]
  • Artículos de administración de Servidores 08/01/2020
    Esta serie de artículos nos permiten saber cómo se instala y se configura un servidor desde cero: Nuevo Servidor NAS reciclado Acceso a servidor de la oficina desde fuera gracias a dinaip Configuración de un firewall de manera sencilla en Debian/Ubuntu
  • ¿Cuál es el uso de WordPress en los principales sitios de Internet según Alexa? 14/12/2019
    Empezamos con nuestra serie de publicaciones sobre tecnologías concretas que más se usan en Internet, en este caso con WordPress. ¿Quieres saber cómo es de importante y cuánto se utiliza? No te pierdas esta entrada.
  • Estudio de Uso de Tecnologías en el millón de páginas más vistas según Alexa 13/12/2019
    Partiendo de la idea del blog de de Andros, y del post sobre su estudio del uso de WordPress con un ejemplo de Clojure. He iniciado un proyecto secundario sobre el uso de las tecnologías usadas en las, más de 1.000.000 principales webs de Internet según Alexa. La idea, es la de ampliar la publicación […]
  • Configuración de un firewall de manera sencilla en Debian/Ubuntu 08/12/2019
    Uno de los problemas principales a la hora de asegurar un servidor es la de filtrar el tráfico de entrada y de salida del mismo, asegurando así que todas las conexiones entrantes y salientes están controladas y sabemos desde donde podemos entrar a los servicios que queremos y no desde donde no queremos. En esta […]
  • Acceso a servidor de la oficina desde fuera gracias a dinaip 06/12/2019
    Una de las tareas para poder acceder a los servicios de nuestro flamante servidor reciclado desde Internet es la de poder configurar el Router y el DNS Dinámico para darle un nombre fijo en Internet, en esta entrada explicaremos cómo lo hemos hecho. Solicitud de IP abierta a Internet en Pepephone El primer paso que […]
  • Arquitectura Web 4.0: Entornos Desacoplados 04/12/2019
    Dentro de la arquitectura Web un Entorno Desacoplado es la combinación de un FrontEnd y un Backend. En esta entrada veremos cómo funciona esta arquitectura desde los puntos más básicos. Como puede verse en el diagrama, una vez cargada una aplicación Frontend, se debería comportar como un agente más que consulta al Servicio Web Rest […]
  • Arquitectura Web 3.0 Frontend 02/12/2019
    Para entender cómo funciona la web iremos viendo cómo funciona de una manera sencilla a la más compleja. En esta entrada veremos los pasos para resolver una petición Web HTTP que gestionar el Navegador Web y cómo se ejecuta el código Javascript   Cliente Web: Solicita la resolución de nombres, actúa como un cliente DNS, […]

Si estás interesado en seguir formándote tenemos una serie de cursos gratuitos: http://cursosdedesarrollo.com/cursos/

También disponemos de algunos cursos de pago por si son de tu interés: https://cursosdedesarrollo.com/tienda/

Curso de Angular: https://cursosdedesarrollo.com/tienda/angular/

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información. ACEPTAR

Aviso de cookies