Search API Solr

Proporciona un backend de Apache Solr para el módulo Search API, habilitando potentes capacidades de búsqueda de texto completo con características avanzadas como facetado, resaltado, autocompletado y soporte multilingüe.

search_api_solr
54,611 sites
127
drupal.org

Install

Drupal 11, 10 v4.3.10
composer require 'drupal/search_api_solr:^4.3'

Overview

Search API Solr es un módulo de integración integral que conecta Search API de Drupal con servidores de búsqueda Apache Solr. Proporciona una implementación robusta de backend para indexar y buscar contenido de Drupal utilizando las potentes capacidades de búsqueda de texto completo de Solr.

El módulo soporta varios modos de despliegue de Solr, incluyendo instalaciones de servidor único y clústeres de Solr Cloud. Genera automáticamente archivos de configuración de Solr (schema.xml, solrconfig.xml) adaptados a tu configuración de Drupal y soporta una amplia personalización a través de entidades de configuración para tipos de campo, cachés, manejadores de solicitudes y despachadores de solicitudes.

Las capacidades clave incluyen búsqueda multilingüe con tipos de campo específicos por idioma, resaltado de resultados de búsqueda, integración de búsqueda facetada, sugerencias de autocompletado, funcionalidad de corrección ortográfica, recomendaciones de More Like This, expresiones de streaming para consultas avanzadas y soporte de indexación multisitio.

Features

  • Implementa el plugin de backend de Search API para servidores Apache Solr con soporte tanto para servidor único como para despliegues de Solr Cloud
  • Proporciona cuatro tipos de conectores: Standard, Basic Auth, Solr Cloud y Solr Cloud con Basic Auth para diferentes escenarios de autenticación y despliegue
  • Generación automática de archivos de configuración de Solr específicos para Drupal (config.zip) incluyendo schema.xml, solrconfig.xml y tipos de campo específicos por idioma
  • Soporte de búsqueda multilingüe con tipos de campo y analizadores específicos por idioma para más de 50 idiomas
  • Integración del procesador de resaltado que recupera fragmentos resaltados directamente de Solr para mejor rendimiento y precisión
  • Integración de búsqueda facetada a través del módulo Facets con soporte para facetas jerárquicas y rangos de fechas
  • Funcionalidad de autocompletado con tres modos de sugerencia: Terms, Spellcheck y Suggester (a través del submódulo search_api_solr_autocomplete)
  • Soporte de More Like This (MLT) para encontrar contenido similar basado en similitud de documentos
  • Capacidades de corrección ortográfica y sugerencia de consultas para mejorar la experiencia de búsqueda
  • Soporte de expresiones de streaming para consultas analíticas complejas en entornos de Solr Cloud
  • Soporte de indexación multisitio que permite a múltiples sitios Drupal compartir un único índice de Solr
  • Tipos de campo de Solr configurables, cachés, manejadores de solicitudes y despachadores de solicitudes como entidades de configuración
  • Hooks de finalización de índice para aplicar modificaciones tardías a documentos indexados antes de las búsquedas
  • Soporte de indexación paralela para procesamiento más rápido de contenido (a través de comando Drush)
  • Sistema de eventos integral para personalizar la construcción de consultas, indexación de documentos y procesamiento de resultados
  • Submódulo de administración para subir configsets, recargar cores/collections y análisis de campos

Use Cases

Búsqueda de Contenido Empresarial

Implementar una potente búsqueda a nivel de sitio para sitios web empresariales con miles de elementos de contenido. Usar las eficientes capacidades de indexación y consulta de Solr para proporcionar resultados de búsqueda en menos de un segundo con navegación por facetas para filtrar por tipo de contenido, fecha, autor, términos de taxonomía y campos personalizados.

Búsqueda en Sitios Web Multilingües

Configurar búsqueda específica por idioma para sitios Drupal multilingües. Search API Solr proporciona tipos de campo específicos por idioma con stemming apropiado, palabras vacías y analizadores para más de 50 idiomas, asegurando que los usuarios encuentren contenido en su idioma con análisis de texto apropiado para el idioma.

Búsqueda de Productos de Comercio Electrónico

Construir una búsqueda integral de productos con filtrado por facetas, facetas de rango de precios, filtros de atributos y ajuste de relevancia. Usar las capacidades de boosting de Solr para promocionar productos destacados y ajustar la relevancia basándose en popularidad, recencia o reglas de negocio personalizadas.

Autocompletado de Búsqueda Mientras Escribes

Implementar sugerencias de autocompletado responsivas usando el submódulo search_api_solr_autocomplete. Configurar sugerencias basadas en términos para coincidencia rápida de prefijos, sugerencias de corrección ortográfica para corrección de errores tipográficos, o el suggester de Solr para completados conscientes del contexto.

Búsqueda Unificada Multisitio

Crear una búsqueda unificada a través de múltiples sitios Drupal compartiendo un único índice Solr. Los usuarios pueden buscar contenido de todos los sitios simultáneamente o filtrar a sitios específicos usando el datasource de documentos multisitio y el filtrado de hash de sitio.

Clúster de Búsqueda de Alta Disponibilidad

Desplegar una infraestructura de búsqueda tolerante a fallos usando Solr Cloud. Configurar múltiples shards para escalado horizontal y replicación para alta disponibilidad. Usar el submódulo admin para gestionar configsets y collections directamente desde Drupal.

Búsqueda en Repositorio de Documentos

Construir un repositorio de documentos con búsqueda integrándose con Search API Attachments. Solr extrae texto de PDFs, documentos de Word y otros formatos de archivo usando Apache Tika, haciendo que el contenido de los documentos sea completamente buscable.

Recomendaciones de Contenido Relacionado

Usar la función More Like This (MLT) de Solr para mostrar bloques de contenido relacionado. Configurar los parámetros de MLT en la configuración del índice para encontrar artículos similares basándose en términos compartidos, taxonomía o criterios de similitud personalizados.

Tips

  • Usar el modo Solr Cloud para despliegues en producción - proporciona mejor escalabilidad, tolerancia a fallos y gestión de configuración más fácil a través de configsets.
  • Habilitar el submódulo search_api_solr_admin para despliegues de Solr Cloud para gestionar configsets directamente desde la interfaz de administración de Drupal.
  • Deshabilitar los procesadores de Search API que realizan tokenización y stemming - Solr los maneja mejor a través de sus analizadores específicos por idioma.
  • Mantener habilitados los procesadores HTML Filter y Highlighting - funcionan bien con las capacidades de resaltado de Solr.
  • Usar 'Retrieve result data from Solr' con 'Skip item access checks' en Views para mejor rendimiento cuando el control de acceso se maneja durante la indexación.
  • Generar un nuevo config.zip y redesplegar siempre que añadas nuevos idiomas o tipos de campo personalizados a tu instalación de Drupal.
  • Usar la herramienta Field Analysis en el submódulo admin para entender cómo el texto es tokenizado y analizado por diferentes tipos de campo.
  • Para desarrollo, usar los archivos docker-compose de inicio rápido incluidos en el módulo para configuración rápida de Solr.
  • Establecer parámetros de Solr directamente en las consultas de Search API usando el prefijo 'solr_param_', por ejemplo, `$query->setOption('solr_param_mm', '75%')`.
  • Usar streaming expressions para consultas analíticas complejas en Solr Cloud - permiten operaciones como joins, agregaciones e integración de machine learning.

Technical Details

Admin Pages 12
Configuración del servidor Solr /admin/config/search/search-api/server/{server_id}

Configura los ajustes del backend de Solr incluyendo el tipo de conector, parámetros de conexión y opciones avanzadas. También proporciona acceso para descargar los archivos de configuración de Solr generados.

Archivos de configuración de Solr /admin/config/search/search-api/server/{server_id}/files

Ver y descargar archivos de configuración de Solr individuales generados para este servidor. Proporciona acceso para descargar archivos de configuración XML específicos o el config.zip completo.

Configuración de tipos de campo de Solr /admin/config/search/search-api/server/{server_id}/solr_field_type

Gestiona los tipos de campo personalizados de Solr usados por este servidor. Los tipos de campo definen cómo se analiza e indexa el texto, incluyendo configuraciones específicas de idioma.

Configuración de caché de Solr /admin/config/search/search-api/server/{server_id}/solr_cache

Configura los ajustes de caché de Solr incluyendo caché de resultados de consultas, caché de filtros y caché de documentos para un rendimiento de búsqueda óptimo.

Configuración de manejadores de solicitudes de Solr /admin/config/search/search-api/server/{server_id}/solr_request_handler

Gestiona los manejadores de solicitudes de Solr que definen cómo se procesan los diferentes tipos de solicitudes de búsqueda (select, suggest, mlt, spell, etc.).

Configuración del despachador de solicitudes de Solr /admin/config/search/search-api/server/{server_id}/solr_request_dispatcher

Configura los despachadores de solicitudes de Solr que manejan el procesamiento de solicitudes HTTP y los encabezados de caché.

Subir Configset /admin/config/search/search-api/server/{server_id}/solr-admin/upload-configset

Sube un configset de Solr generado directamente a un clúster de Solr Cloud. Para nuevas colecciones, también permite especificar ajustes de fragmentación y replicación.

Recargar Core /admin/config/search/search-api/server/{server_id}/solr-admin/reload-core

Fuerza al servidor Solr a recargar la configuración del core. Úsalo después de actualizar manualmente los archivos de configuración.

Recargar colección /admin/config/search/search-api/server/{server_id}/solr-admin/reload-collection

Fuerza al servidor Solr Cloud a recargar la configuración de la colección en todos los nodos.

Eliminar colección /admin/config/search/search-api/server/{server_id}/solr-admin/delete-collection

Elimina una colección de Solr Cloud. Advertencia: Esto elimina permanentemente la colección y todos los datos indexados.

Análisis de campos de Solr /admin/config/search/search-api/server/{server_id}/solr-admin/field-analysis

Prueba cómo se analiza el texto por diferentes tipos de campo de Solr. Útil para depurar el comportamiento de búsqueda y entender la tokenización, derivación y filtrado.

Índice de Search API - Opciones específicas de Solr /admin/config/search/search-api/index/{index_id}

Configura los ajustes específicos de Solr para un índice de Search API incluyendo finalización, resaltado, More Like This y opciones multilingües.

Permissions 2
Ejecutar tarea de administración de Solr

Acceso para ejecutar tareas administrativas de Solr como cargar configsets, recargar cores/collections y eliminar collections.

Realizar análisis de campo

Acceso para realizar análisis de campo de Solr para probar cómo se tokeniza y analiza el texto.

Hooks 7
hook_search_api_solr_query_alter

Obsoleto desde 4.2.0. Usa PreQueryEvent en su lugar. Permite modificar la consulta de Solarium antes de su ejecución.

hook_search_api_solr_converted_query_alter

Obsoleto desde 4.2.0. Usa PostConvertedQueryEvent en su lugar. Permite modificar la consulta después de su conversión a expresión Solr.

hook_search_api_solr_field_mapping_alter

Obsoleto desde 4.2.0. Usa PostFieldMappingEvent en su lugar. Permite modificar los mapeos de nombres de campos.

hook_search_api_solr_documents_alter

Obsoleto desde 4.2.0. Usa PostCreateIndexDocumentsEvent en su lugar. Permite modificar los documentos de Solr antes de la indexación.

hook_search_api_solr_search_results_alter

Obsoleto desde 4.2.0. Usa PostExtractResultsEvent en su lugar. Permite modificar los resultados de búsqueda devueltos por Solr.

hook_search_api_solr_finalize_index

Obsoleto desde 4.2.0. Usa PreIndexFinalizationEvent en su lugar. Aplica comandos de finalización antes de la primera búsqueda.

hook_search_api_solr_config_files_alter

Obsoleto desde 4.2.0. Usa PostConfigFilesGenerationEvent en su lugar. Modifica los archivos de configuración de Solr generados.

Drush Commands 10
drush search-api-solr:get-server-config

Descarga los archivos de configuración de Solr generados para un servidor como un archivo ZIP.

drush search-api-solr:reinstall-fieldtypes

Elimina todos los tipos de campo de Solr y los reinstala desde sus archivos de configuración YAML.

drush search-api-solr:install-missing-fieldtypes

Instala cualquier tipo de campo de Solr faltante desde sus archivos de configuración YAML.

drush search-api-solr:finalize-index

Ejecuta operaciones de finalización en uno o todos los índices de búsqueda habilitados.

drush search-api-solr:execute-raw-streaming-expression

Ejecuta una expresión de streaming sin procesar en un índice de Solr Cloud.

drush search-api-solr:index-parallel

Indexa elementos utilizando hilos paralelos para mejorar el rendimiento.

drush search-api-solr:reload

Recarga un core o colección de Solr para aplicar cambios de configuración.

drush search-api-solr:upload-configset

Sube un configset a Solr Cloud y recarga o crea la colección.

drush search-api-solr:delete-collection

Elimina una colección de Solr Cloud.

drush search-api-solr:delete-all

Elimina TODOS los documentos de un servidor Solr en todos los índices.

Troubleshooting 8
Los resultados de búsqueda incluyen contenido de otros sitios en una configuración multisitio

Habilitar 'Retrieve results for this site only' en la configuración de compatibilidad Multi-site del servidor, o asegurar que el filtrado apropiado de hash de sitio esté configurado en tus consultas.

Error: 'Can not use FieldCache on multivalued field: boost_document'

Esto indica que el core de Solr fue creado sin el configset específico de Drupal apropiado. Descargar el config.zip desde la página del servidor y redesplegarlo a Solr, luego recargar el core.

Los cambios de configuración no se reflejan en los resultados de búsqueda

Después de modificar las entidades de configuración de Solr (tipos de campo, cachés, etc.), descargar el nuevo config.zip y redesplegar a Solr. Luego recargar el core/collection usando el submódulo admin o el comando drush solr-reload.

Nuevos idiomas muestran advertencias en el informe de estado

Añadir la configuración apropiada de tipo de campo de Solr específica del idioma. Si no hay configuración específica del idioma disponible, el módulo recurre al tipo de campo language-undefined. Habilitar 'Suppress warnings about missing language-specific field types' en configuración avanzada si esto es aceptable.

Los resultados de Views están desactualizados o no muestran contenido nuevo

Deshabilitar el caché de Views o usar el caché 'Search API (time based)'. Para caché basado en etiquetas, habilitar 'Finalize index before first search' y 'Wait for commit after last finalization' en la configuración del índice.

El autocompletado no funciona o no devuelve sugerencias

Asegurar que el suggester esté construido ejecutando cron o activando manualmente una construcción del suggester. Verificar que el request handler para sugerencias no esté deshabilitado en la configuración del backend.

OutOfMemoryException en Solr Cloud al buscar

Reducir la configuración 'Default result rows' en la configuración avanzada del servidor. Valores altos combinados con múltiples shards pueden exceder los límites de memoria ya que Solr reserva el límite de filas por shard para ordenar resultados.

El comando de índice paralelo se bloquea o bloquea las eliminaciones

Si el comando de indexación paralela fue interrumpido, ejecutar 'drush search-api-solr:reset-empty-index-state' para limpiar el estado de bloqueo que previene eliminaciones hasta por una hora.

Security Notes 6
  • Los servidores Solr NO deben estar expuestos a la internet pública. Usar reglas de firewall o configuración de red para restringir el acceso al servidor Solr solo desde tu servidor web.
  • Usar HTTP Basic Authentication (conectores BasicAuth) cuando Solr deba ser accesible a través de una red, y siempre usar HTTPS en producción.
  • El permiso 'execute solr admin task' otorga capacidades poderosas incluyendo eliminación de collections - asignar solo a administradores de confianza.
  • Ser cauteloso con la indexación multisitio - el contenido de un sitio puede ser visible para usuarios en otro sitio si el filtrado apropiado de hash de sitio no está configurado.
  • Revisar el contenido indexado para asegurar que datos sensibles no sean expuestos inadvertidamente a través de resultados de búsqueda o facetas.
  • El config.zip contiene archivos de configuración que revelan la estructura de tu índice - manejarlo de forma segura y no exponerlo públicamente.