Solr: búsqueda potente para sitios web TYPO3
Con la búsqueda Solr, los visitantes de su sitio web pueden encontrar rápidamente el resultado adecuado. Ofrece resultados más rápidos y mejores que el indexed_search integrado en TYPO3.
La búsqueda SOLR está incluida gratuitamente en la mayoría de nuestras tarifas de alojamiento.
¿Qué es Apache Solr?
Solr es un software de código abierto que ofrece resultados de búsqueda extremadamente rápidos y de alta calidad. Incluso con millones de documentos, el motor de búsqueda ofrece resultados en sólo unos milisegundos. Solr es un proyecto de la Fundación Apache y se basa en la tecnología Lucene. El software Solr está escrito en Java y se ejecuta fuera de TYPO3 en su propio servidor (por ejemplo, Tomcat o Jetty). TYPO3 se comunica con este servidor de motor de búsqueda a través de extensiones.
Las funciones más importantes incluyen
- Búsqueda de texto completo
- Resaltado del término de búsqueda en los resultados
- Búsqueda facetada (agrupación de resultados por categorías)
- Sugerencias en cuanto se introduce el término de búsqueda (autosugerencia)
- Sugerencias para términos mal escritos (¿quería decir...?)
- Ajuste de los resultados de la búsqueda (por ejemplo, impulso, priorización del contenido actual)
- Sinónimos (la búsqueda de teléfono móvil también devuelve resultados con smartphone)
- Palabras de parada (no aparecen resultados para estas palabras)
- Búsqueda en el contenido de archivos (más de 100 tipos de archivos)
- Actualizaciones en tiempo real
- Conexión sencilla a los campos de la base de datos
- Consideración de las autorizaciones
¿Por qué es importante una búsqueda potente para el sitio web?
A menudo, la información de un sitio web sólo puede encontrarse a través de menús anidados. Especialmente en los dispositivos móviles, la función de búsqueda suele primar sobre la navegación por menús. Aquí es importante que la búsqueda ofrezca el resultado correcto muy rápidamente.
TYPO3 ya tiene una función de búsqueda integrada con indexed_search. Esto sólo tiene una gama limitada de funciones y el tiempo de respuesta aumenta con el número de documentos indexados.
¿Qué versiones de Apache Solr proporciona jweiland.net?
Nuestro Managed Solr Hosting ofrece actualmente las versiones Solr 7.6 a 9.8. Con estas versiones del servidor Solr, TYPO3 versiones 8.7 a 13.4 son compatibles. Ya no ofrecemos soporte Solr para versiones anteriores de TYPO3 (7 y anteriores).
En Documentación de la Extensión TYPO3 Solr enumera en una matriz de versiones enumera las versiones correspondientes del servidor Solr, las versiones de TYPO3 y las versiones de la extensión.
¿Cómo se utiliza Solr con TYPO3?
Hay varias extensiones disponibles para el uso de Solr con TYPO3, por ejemplo
- La extensión solr ofrece las funciones básicas
- solr_fal implementa el acceso a archivos
- El contenido de los archivos se puede indexar con la extensión tika
- La extensión solrmlt (más bien así) permite la visualización de resultados de búsqueda relacionados
- Para proyectos con muchos dominios en una base de datos (multisitio), la indexación se realiza con la extensión jwtools extensión
Cuando se utiliza la extensión, se debe tener cuidado para asegurarse de que las versiones de los componentes de software individuales son compatibles. Para TYPO3 versión 13.4 se requiere un servidor con Apache Solr 9.8 y la extensión Solr 13.x.
Nota: a partir de la versión 9.8 del servidor Solr (es decir, para TYPO3 12.4 y 13.4), los núcleos para todos los idiomas disponibles ya están incluidos. Por lo tanto, ya no es necesario especificar el idioma para el núcleo en estas versiones de TYPO3.
Algunos proveedores de alojamiento también ofrecen alojamiento Solr. Solr ya está incluido en el precio de nuestros paquetes de alojamiento a partir de la tarifa Premium. Alternativamente, puede configurar su propio servidor Solr.
Reservar núcleos Solr
Para utilizar la búsqueda, necesita un servidor Solr basado en Java. Si desea configurar, hacer funcionar y actualizar dicho servidor usted mismo, encontrará las instrucciones pertinentes en la documentación de Solr. Es mucho más fácil y rápido con nuestras tarifas de alojamientoen las que el uso de nuestros servidores Solr ya está incluido a partir de la tarifa Premium.
Se necesita un núcleo Solr distinto para cada idioma, es decir, 2 núcleos para un sitio web bilingüe.
Los índices de búsqueda dentro de un núcleo se almacenan por separado para cada dominio, por lo que un núcleo puede utilizarse para varios dominios.
Dos núcleos ya están incluidos en el precio de nuestra tarifa de alojamiento Premium, los núcleos adicionales (idiomas) se pueden pedir en paquetes de 5. Con nuestro alojamiento Solr, no hay límites en el número de documentos indexados, espacio de almacenamiento o consultas de búsqueda (principio de "uso justo").
En nuestras tarifas cloud, los núcleos Solr se reservan a través de la gestión de contratos. En las tarifas de alojamiento clásico, el pedido se realiza mediante el siguiente formulario:
Participación en el desarrollo
Las extensiones Solr se desarrollan bajo la dirección de d.k.d. en Frankfurt. Algunas de las extensiones están disponibles gratuitamente en el TYPO3 Extension Repository (TER) o en Github. Participación en el programa de sociosde dkd obtendrá acceso a todas las extensiones y a las versiones de desarrollo actuales.
A matriz compara las funciones de las distintas extensiones de Solr y de indexed_search.
Instalación, configuración básica
Sólo se requiere la extensión solr para la función básica de búsqueda Solr; más extensiones para funciones adicionales se pueden añadir más tarde. Se requiere un núcleo Solr adecuado para cada idioma del sitio web configurado en TYPO3.
En la página raíz del proyecto, la opción "Usar como inicio del sitio web" debe estar activada en las propiedades de la página en la pestaña Comportamiento.
El servidor Solr se configura en Administración de páginas->Páginas en la pestaña Solr. Tras solicitar los núcleos Solr mediante el formulario anterior, recibirá los datos de acceso en el formulario nombre de usuario (normalmente el número de cliente), contraseña y dirección del servidor Solr. Estos datos se introducen en el formulario nombreusuario:contraseña@servidor. La conexión se realiza a través de https:// en el puerto 443, el directorio de destino es /
Datos de conexión al servidor Solr (TYPO3 hasta la versión 8)
Tras solicitar un Solr Core para un paquete de alojamiento, el cliente recibe de nosotros los datos de acceso correspondientes. Estos pueden copiarse/pegarse directamente. He aquí un ejemplo:
plugin.tx_solr.solr.host = 123456.solr-01.jweiland.net plugin.tx_solr.solr.username = 123456 plugin.tx_solr.solr.password = secreto plugin.tx_solr.solr.port = 443 plugin.tx_solr.solr.path = /solr/core_german/ plugin.tx_solr.solr.scheme = https
Donde 123456 corresponde al número de cliente, el nombre del host también puede variar. 'scheme' se utiliza para especificar que la conexión entre TYPO3 y el servidor Solr se realiza a través de una conexión cifrada.
Para varios idiomas, el núcleo Solr asociado se configura mediante una condición:
[globalVar = GP:L = 1] plugin.tx_solr.solr.path = /solr/core_espanol/ [GLOBAL]
En la documentación de la extensión Solr se describen todas las opciones de configuración de TypoScript están descritas.
Una vez configurados los datos de conexión, se establece la conexión con el servidor Solr mediante el símbolo del rayo. Si la opción "Inicializar conexiones Solr" no está visible aquí, debe cerrar la sesión en el backend y volver a iniciarla. A continuación, puede comprobar si la conexión se ha realizado correctamente a través de la opción de menú Herramientas de administración->Búsqueda:
Plantilla TypoScript estática
La extensión Solr proporciona una serie de plantillas TypoScript estáticas. Al menos el módulo "Search - Base Configuration (solr)" debe estar incluido en la plantilla raíz.
Solr indexa por defecto las páginas y los elementos de contenido habituales. Las extensiones con sus propios registros de datos requieren su propia configuración mediante TypoScript. Ya se suministran los ejemplos correspondientes para las extensiones news y tt_news; éstos también pueden servir de ejemplo para otras extensiones.
Funcionalidad
Los elementos a indexar (páginas con contenido y registros de datos de extensión) se introducen en la tabla de la base de datos tx_solr_indexqueue_item. Esto se hace automáticamente al crear, insertar y modificar datos.
Una tarea del programador (Index Queue_Worker) busca entradas nuevas o modificadas en esta tabla cada vez que se ejecuta e inicia la indexación en el servidor Solr para ellas. Por lo tanto, la indexación sólo tiene lugar si el planificador se ejecuta regularmente, por ejemplo, cada 5 minutos. En este caso, los contenidos nuevos o modificados pueden encontrarse a través de la búsqueda transcurridos 5 minutos como máximo.
Si durante la indexación se encuentran archivos vinculados, éstos se introducen en una cola adicional en la base de datos (tx_solr_indexqueue_file) (cuando se utiliza la extensión solrfal). La indexación se realiza entonces a través de otra tarea del programador (File Index Queue Worker).
Si se elimina contenido, la solicitud de eliminación se envía directamente al servidor Solr; para ello no es necesaria la ejecución de la tarea del programador.
Preparación
La plantilla HTML del sitio web debe contener marcadores <!--TYPO3SEARCH_begin--> y <!--TYPO3SEARCH_end-->. Esto marca las áreas de contenido que deben indexarse. Por ejemplo, los menús y las vistas de lista de los registros de datos no deben incluirse en la búsqueda. En lugar de las vistas de lista, se utiliza la vista única para el índice de búsqueda.
Para cada extensión (excepto news y tt_news), debe definirse una configuración de la cola index_queue mediante TypoScript. Esto define qué campos con qué propiedades deben incluirse en el índice de búsqueda.
En general, la búsqueda debe activarse en TypoScript:
config.index_enable = 1
A continuación, la cola de índices se inicializa una vez a través del elemento de menú Herramientas de administración->Búsqueda. A continuación, la indexación se lleva a cabo mediante la ejecución de la tarea del programador.