Configuración Avanzada del Rastreador
Descripción General
Esta guía explica la configuración avanzada del rastreador de Fess. Para la configuración básica del rastreador, consulte Configuración Básica del Rastreador.
Advertencia
Las configuraciones de esta página pueden afectar al sistema completo. Al modificar la configuración, realice pruebas exhaustivas antes de aplicarlas en el entorno de producción.
Configuración General
Ubicación de los Archivos de Configuración
La configuración avanzada del rastreador se realiza en los siguientes archivos:
Configuración principal:
/etc/fess/fess_config.properties(oapp/WEB-INF/classes/fess_config.properties)Configuración de longitud de contenido:
app/WEB-INF/classes/crawler/contentlength.xmlConfiguración de componentes:
app/WEB-INF/classes/crawler/container.xml
Script Predeterminado
Configura el lenguaje de script predeterminado del rastreador.
| Propiedad | Descripción | Valor Predeterminado |
|---|---|---|
crawler.default.script | Lenguaje de script del rastreador | groovy |
crawler.default.script=groovy
Pool de Hilos HTTP
Configuración del pool de hilos del rastreador HTTP.
| Propiedad | Descripción | Valor Predeterminado |
|---|---|---|
crawler.http.thread_pool.size | Tamaño del pool de hilos HTTP | 0 |
# 0 para configuración automática
crawler.http.thread_pool.size=0
Configuración de Procesamiento de Documentos
Configuración Básica
| Propiedad | Descripción | Valor Predeterminado |
|---|---|---|
crawler.document.max.site.length | Número máximo de líneas del sitio del documento | 100 |
crawler.document.site.encoding | Codificación del sitio del documento | UTF-8 |
crawler.document.unknown.hostname | Valor alternativo para nombres de host desconocidos | unknown |
crawler.document.use.site.encoding.on.english | Usar codificación del sitio en documentos en inglés | false |
crawler.document.append.data | Agregar datos al documento | true |
crawler.document.append.filename | Agregar nombre de archivo al documento | false |
Ejemplo de Configuración
crawler.document.max.site.length=100
crawler.document.site.encoding=UTF-8
crawler.document.unknown.hostname=unknown
crawler.document.use.site.encoding.on.english=false
crawler.document.append.data=true
crawler.document.append.filename=false
Configuración de Procesamiento de Palabras
| Propiedad | Descripción | Valor Predeterminado |
|---|---|---|
crawler.document.max.alphanum.term.size | Longitud máxima de palabras alfanuméricas | 20 |
crawler.document.max.symbol.term.size | Longitud máxima de palabras con símbolos | 10 |
crawler.document.duplicate.term.removed | Eliminar palabras duplicadas | false |
Ejemplo de Configuración
# Cambiar la longitud máxima alfanumérica a 50 caracteres
crawler.document.max.alphanum.term.size=50
# Cambiar la longitud máxima de símbolos a 20 caracteres
crawler.document.max.symbol.term.size=20
# Eliminar palabras duplicadas
crawler.document.duplicate.term.removed=true
Nota
Aumentar max.alphanum.term.size permite indexar IDs largos, tokens, URLs, etc. en su forma completa, pero aumentará el tamaño del índice.
Configuración de Procesamiento de Caracteres
| Propiedad | Descripción | Valor Predeterminado |
|---|---|---|
crawler.document.space.chars | Definición de caracteres de espacio | \u0009\u000A... |
crawler.document.fullstop.chars | Definición de caracteres de punto final | \u002e\u06d4... |
Ejemplo de Configuración
# Valores predeterminados (incluyendo caracteres Unicode)
crawler.document.space.chars=\u0009\u000A\u000B\u000C\u000D\u001C\u001D\u001E\u001F\u0020\u00A0\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u200B\u200C\u202F\u205F\u3000\uFEFF\uFFFD\u00B6
crawler.document.fullstop.chars=\u002e\u06d4\u2e3c\u3002
Configuración de Protocolos
Protocolos Compatibles
| Propiedad | Descripción | Valor Predeterminado |
|---|---|---|
crawler.web.protocols | Protocolos para rastreo web | http,https |
crawler.file.protocols | Protocolos para rastreo de archivos | file,smb,smb1,ftp,storage |
Ejemplo de Configuración
crawler.web.protocols=http,https
crawler.file.protocols=file,smb,smb1,ftp,storage
Parámetros de Variables de Entorno
| Propiedad | Descripción | Valor Predeterminado |
|---|---|---|
crawler.data.env.param.key.pattern | Patrón de clave de parámetro de variable de entorno | ^FESS_ENV_.* |
# Variables de entorno que comienzan con FESS_ENV_ están disponibles en la configuración de rastreo
crawler.data.env.param.key.pattern=^FESS_ENV_.*
Configuración de robots.txt
| Propiedad | Descripción | Valor Predeterminado |
|---|---|---|
crawler.ignore.robots.txt | Ignorar robots.txt | false |
crawler.ignore.robots.tags | Etiquetas robots a ignorar | (vacío) |
crawler.ignore.content.exception | Ignorar excepción de contenido | true |
# Ignorar robots.txt (no recomendado)
crawler.ignore.robots.txt=false
# Ignorar etiquetas robots específicas
crawler.ignore.robots.tags=
# Ignorar excepciones de contenido
crawler.ignore.content.exception=true
Advertencia
Configurar crawler.ignore.robots.txt=true puede violar los términos de servicio del sitio. Tenga cuidado al rastrear sitios externos.
Configuración de Manejo de Errores
| Propiedad | Descripción | Valor Predeterminado |
|---|---|---|
crawler.failure.url.status.codes | Códigos de estado HTTP considerados como fallo | 404 |
# Tratar también 403 como error además de 404
crawler.failure.url.status.codes=404,403
Configuración de Monitoreo del Sistema
| Propiedad | Descripción | Valor Predeterminado |
|---|---|---|
crawler.system.monitor.interval | Intervalo de monitoreo del sistema (segundos) | 60 |
# Monitorear el sistema cada 30 segundos
crawler.system.monitor.interval=30
Configuración de Hot Threads
| Propiedad | Descripción | Valor Predeterminado |
|---|---|---|
crawler.hotthread.ignore_idle_threads | Ignorar hilos inactivos | true |
crawler.hotthread.interval | Intervalo de instantáneas | 500ms |
crawler.hotthread.snapshots | Número de instantáneas | 10 |
crawler.hotthread.threads | Número de hilos a monitorear | 3 |
crawler.hotthread.timeout | Tiempo de espera | 30s |
crawler.hotthread.type | Tipo de monitoreo | cpu |
Ejemplo de Configuración
crawler.hotthread.ignore_idle_threads=true
crawler.hotthread.interval=500ms
crawler.hotthread.snapshots=10
crawler.hotthread.threads=3
crawler.hotthread.timeout=30s
crawler.hotthread.type=cpu
Configuración de Metadatos
| Propiedad | Descripción | Valor Predeterminado |
|---|---|---|
crawler.metadata.content.excludes | Metadatos a excluir | resourceName,X-Parsed-By... |
crawler.metadata.name.mapping | Mapeo de nombres de metadatos | title=title:string... |
# Metadatos a excluir
crawler.metadata.content.excludes=resourceName,X-Parsed-By,Content-Encoding.*,Content-Type.*,X-TIKA.*,X-FESS.*
# Mapeo de nombres de metadatos
crawler.metadata.name.mapping=\
title=title:string\n\
Title=title:string\n\
dc:title=title:string
Configuración del Rastreador HTML
Configuración de XPath
Configuración de XPath para extraer elementos HTML.
| Propiedad | Descripción | Valor Predeterminado |
|---|---|---|
crawler.document.html.content.xpath | XPath del contenido | //BODY |
crawler.document.html.lang.xpath | XPath del idioma | //HTML/@lang |
crawler.document.html.digest.xpath | XPath del resumen | //META[@name='description']/@content |
crawler.document.html.canonical.xpath | XPath de URL canónica | //LINK[@rel='canonical'][1]/@href |
Ejemplo de Configuración
# Configuración predeterminada
crawler.document.html.content.xpath=//BODY
crawler.document.html.lang.xpath=//HTML/@lang
crawler.document.html.digest.xpath=//META[@name='description']/@content
crawler.document.html.canonical.xpath=//LINK[@rel='canonical'][1]/@href
Ejemplos de XPath Personalizados
# Extraer solo un elemento div específico como contenido
crawler.document.html.content.xpath=//DIV[@id='main-content']
# Incluir también meta keywords en el resumen
crawler.document.html.digest.xpath=//META[@name='description']/@content|//META[@name='keywords']/@content
Procesamiento de Etiquetas HTML
| Propiedad | Descripción | Valor Predeterminado |
|---|---|---|
crawler.document.html.pruned.tags | Etiquetas HTML a eliminar | noscript,script,style,header,footer,aside,nav,a[rel=nofollow] |
crawler.document.html.max.digest.length | Longitud máxima del resumen | 120 |
crawler.document.html.default.lang | Idioma predeterminado | (vacío) |
Ejemplo de Configuración
# Agregar etiquetas a eliminar
crawler.document.html.pruned.tags=noscript,script,style,header,footer,aside,nav,a[rel=nofollow],form
# Longitud del resumen a 200 caracteres
crawler.document.html.max.digest.length=200
# Idioma predeterminado a japonés
crawler.document.html.default.lang=ja
Filtros de Patrón de URL
| Propiedad | Descripción | Valor Predeterminado |
|---|---|---|
crawler.document.html.default.include.index.patterns | Patrones de URL a incluir en el índice | (vacío) |
crawler.document.html.default.exclude.index.patterns | Patrones de URL a excluir del índice | (?i).*(css|js|jpeg...) |
crawler.document.html.default.include.search.patterns | Patrones de URL a incluir en resultados de búsqueda | (vacío) |
crawler.document.html.default.exclude.search.patterns | Patrones de URL a excluir de resultados de búsqueda | (vacío) |
Ejemplo de Configuración
# Patrón de exclusión predeterminado
crawler.document.html.default.exclude.index.patterns=(?i).*(css|js|jpeg|jpg|gif|png|bmp|wmv|xml|ico|exe)
# Indexar solo rutas específicas
crawler.document.html.default.include.index.patterns=https://example\\.com/docs/.*
Configuración del Rastreador de Archivos
Configuración Básica
| Propiedad | Descripción | Valor Predeterminado |
|---|---|---|
crawler.document.file.name.encoding | Codificación del nombre de archivo | (vacío) |
crawler.document.file.no.title.label | Etiqueta para archivos sin título | No title. |
crawler.document.file.ignore.empty.content | Ignorar contenido vacío | false |
crawler.document.file.max.title.length | Longitud máxima del título | 100 |
crawler.document.file.max.digest.length | Longitud máxima del resumen | 200 |
Ejemplo de Configuración
# Procesar nombres de archivo en Windows-31J
crawler.document.file.name.encoding=Windows-31J
# Etiqueta para archivos sin título
crawler.document.file.no.title.label=Sin título
# Ignorar archivos vacíos
crawler.document.file.ignore.empty.content=true
# Longitud de título y resumen
crawler.document.file.max.title.length=200
crawler.document.file.max.digest.length=500
Procesamiento de Contenido
| Propiedad | Descripción | Valor Predeterminado |
|---|---|---|
crawler.document.file.append.meta.content | Agregar metadatos al contenido | true |
crawler.document.file.append.body.content | Agregar cuerpo al contenido | true |
crawler.document.file.default.lang | Idioma predeterminado | (vacío) |
Ejemplo de Configuración
crawler.document.file.append.meta.content=true
crawler.document.file.append.body.content=true
crawler.document.file.default.lang=ja
Filtros de Patrón de URL de Archivos
| Propiedad | Descripción | Valor Predeterminado |
|---|---|---|
crawler.document.file.default.include.index.patterns | Patrones a incluir en el índice | (vacío) |
crawler.document.file.default.exclude.index.patterns | Patrones a excluir del índice | (vacío) |
crawler.document.file.default.include.search.patterns | Patrones a incluir en resultados de búsqueda | (vacío) |
crawler.document.file.default.exclude.search.patterns | Patrones a excluir de resultados de búsqueda | (vacío) |
Ejemplo de Configuración
# Indexar solo extensiones específicas
crawler.document.file.default.include.index.patterns=.*\\.(pdf|docx|xlsx|pptx)$
# Excluir carpetas temp
crawler.document.file.default.exclude.index.patterns=.*/temp/.*
Configuración de Caché
Caché de Documentos
| Propiedad | Descripción | Valor Predeterminado |
|---|---|---|
crawler.document.cache.enabled | Habilitar caché de documentos | true |
crawler.document.cache.max.size | Tamaño máximo de caché (bytes) | 2621440 (2.5MB) |
crawler.document.cache.supported.mimetypes | Tipos MIME a almacenar en caché | text/html |
crawler.document.cache.html.mimetypes | Tipos MIME a tratar como HTML | text/html |
Ejemplo de Configuración
# Habilitar caché de documentos
crawler.document.cache.enabled=true
# Tamaño de caché a 5MB
crawler.document.cache.max.size=5242880
# Tipos MIME a almacenar en caché
crawler.document.cache.supported.mimetypes=text/html,application/xhtml+xml
# Tipos MIME a tratar como HTML
crawler.document.cache.html.mimetypes=text/html,application/xhtml+xml
Nota
Al habilitar la caché, se muestra un enlace de caché en los resultados de búsqueda, lo que permite a los usuarios ver el contenido en el momento del rastreo.
Opciones de JVM
Puede configurar las opciones de JVM para el proceso del rastreador.
| Propiedad | Descripción | Valor Predeterminado |
|---|---|---|
jvm.crawler.options | Opciones de JVM del rastreador | -Xms128m -Xmx512m... |
Configuración Predeterminada
jvm.crawler.options=-Xms128m -Xmx512m \
-XX:MaxMetaspaceSize=128m \
-XX:+UseG1GC \
-XX:MaxGCPauseMillis=60000 \
-XX:-HeapDumpOnOutOfMemoryError
Descripción de las Opciones Principales
| Opción | Descripción |
|---|---|
-Xms128m | Tamaño inicial del heap (128MB) |
-Xmx512m | Tamaño máximo del heap (512MB) |
-XX:MaxMetaspaceSize=128m | Tamaño máximo del Metaspace (128MB) |
-XX:+UseG1GC | Usar recolector de basura G1 |
-XX:MaxGCPauseMillis=60000 | Objetivo de tiempo de pausa del GC (60 segundos) |
-XX:-HeapDumpOnOutOfMemoryError | Deshabilitar heap dump en OutOfMemory |
Ejemplos de Configuración Personalizada
Al rastrear archivos grandes:
jvm.crawler.options=-Xms256m -Xmx2g \
-XX:MaxMetaspaceSize=256m \
-XX:+UseG1GC \
-XX:MaxGCPauseMillis=60000
Durante depuración:
jvm.crawler.options=-Xms128m -Xmx512m \
-XX:MaxMetaspaceSize=128m \
-XX:+UseG1GC \
-XX:+HeapDumpOnOutOfMemoryError \
-XX:HeapDumpPath=/tmp/crawler_dump.hprof
Para más detalles, consulte Configuración de Memoria.
Optimización del Rendimiento
Optimización de la Velocidad de Rastreo
1. Ajuste del Número de Hilos
Puede mejorar la velocidad de rastreo aumentando el número de rastreos paralelos.
# Ajustar el número de hilos en la configuración de rastreo de la interfaz administrativa
Número de hilos: 10
Sin embargo, tenga cuidado con la carga en el servidor objetivo.
2. Ajuste de Tiempos de Espera
Para sitios con respuesta lenta, ajuste los tiempos de espera.
# Agregar a "Parámetros de configuración" en la configuración de rastreo
client.connectionTimeout=10000
client.socketTimeout=30000
3. Exclusión de Contenido Innecesario
Excluir imágenes, CSS, archivos JavaScript, etc. puede mejorar la velocidad de rastreo.
# Patrón de URL de exclusión
.*\.(jpg|jpeg|png|gif|css|js|ico)$
4. Configuración de Reintentos
Ajuste el número de reintentos y el intervalo en caso de error.
# Agregar a "Parámetros de configuración" en la configuración de rastreo
client.maxRetry=3
client.retryInterval=1000
Optimización del Uso de Memoria
1. Ajuste del Tamaño del Heap
jvm.crawler.options=-Xms256m -Xmx1g
2. Ajuste del Tamaño de Caché
crawler.document.cache.max.size=1048576 # 1MB
3. Exclusión de Archivos Grandes
# Agregar a "Parámetros de configuración" en la configuración de rastreo
client.maxContentLength=10485760 # 10MB
Para más detalles, consulte Configuración de Memoria.
Mejora de la Calidad del Índice
1. Optimización de XPath
Excluya elementos innecesarios (navegación, publicidad, etc.).
crawler.document.html.content.xpath=//DIV[@id='main-content']
crawler.document.html.pruned.tags=noscript,script,style,header,footer,aside,nav,form,iframe
2. Optimización del Resumen
crawler.document.html.max.digest.length=200
3. Mapeo de Metadatos
crawler.metadata.name.mapping=\
title=title:string\n\
description=digest:string\n\
keywords=label:string
Solución de Problemas
Falta de Memoria
Síntomas:
Se registra
OutOfMemoryErrorenfess_crawler.logEl rastreo se detiene a mitad de camino
Soluciones:
Aumentar el tamaño del heap del rastreador
jvm.crawler.options=-Xms256m -Xmx2g
Reducir el número de hilos paralelos
Excluir archivos grandes
Para más detalles, consulte Configuración de Memoria.
Rastreo Lento
Síntomas:
El rastreo tarda demasiado tiempo
Se producen tiempos de espera frecuentes
Soluciones:
Aumentar el número de hilos (tenga cuidado con la carga del servidor objetivo)
Ajustar los tiempos de espera
client.connectionTimeout=5000 client.socketTimeout=10000
Excluir URLs innecesarias
No se Puede Extraer Contenido Específico
Síntomas:
El texto de la página no se extrae correctamente
La información importante no se incluye en los resultados de búsqueda
Soluciones:
Verificar y ajustar el XPath
crawler.document.html.content.xpath=//DIV[@class='content']
Verificar las etiquetas eliminadas
crawler.document.html.pruned.tags=script,style
Para contenido generado dinámicamente con JavaScript, considere métodos alternativos (como rastreo de API)
Caracteres Corruptos
Síntomas:
Se producen caracteres corruptos en los resultados de búsqueda
Ciertos idiomas no se muestran correctamente
Soluciones:
Verificar la configuración de codificación
crawler.document.site.encoding=UTF-8 crawler.crawling.data.encoding=UTF-8
Configurar la codificación de nombres de archivo
crawler.document.file.name.encoding=Windows-31J
Verificar errores de codificación en los registros
grep -i "encoding" /var/log/fess/fess_crawler.log
Mejores Prácticas
Verificar en Entorno de Prueba
Realice pruebas exhaustivas en un entorno de prueba antes de aplicar en producción.
Ajuste Gradual
No realice cambios grandes a la configuración de una sola vez, ajuste gradualmente y verifique los efectos.
Monitoreo de Registros
Después de cambiar la configuración, monitoree los registros para verificar que no haya errores o problemas de rendimiento.
tail -f /var/log/fess/fess_crawler.log
Respaldo
Siempre realice una copia de seguridad antes de modificar archivos de configuración.
cp /etc/fess/fess_config.properties /etc/fess/fess_config.properties.bak
Documentación
Documente los cambios realizados en la configuración y su justificación.
Información de Referencia
Configuración Básica del Rastreador - Configuración básica del rastreador
Configuración de Imágenes en Miniatura - Configuración de miniaturas
Configuración de Memoria - Configuración de memoria
Configuración de Registro - Configuración de registros
Configuración de Búsqueda Avanzada - Configuración avanzada de búsqueda