Descripcion general
El conector CSV proporciona la funcionalidad para obtener datos de archivos CSV y registrarlos en el indice de Fess.
Esta funcionalidad requiere el plugin fess-ds-csv.
Requisitos previos
Es necesario instalar el plugin
Se requiere acceso a los archivos CSV
Es necesario conocer la codificacion de caracteres del archivo CSV
Instalacion del plugin
Metodo 1: Colocar el archivo JAR directamente
Metodo 2: Instalar desde la pantalla de administracion
Abrir «Sistema» -> «Plugins»
Subir el archivo JAR
Reiniciar Fess
Configuracion
Configure desde la pantalla de administracion en «Crawler» -> «Data Store» -> «Crear nuevo».
Configuracion basica
| Campo | Ejemplo |
|---|---|
| Nombre | Products CSV |
| Nombre del handler | CsvDataStore |
| Habilitado | Activado |
Configuracion de parametros
Archivo local:
Multiples archivos:
Nota
El procesamiento de comillas (quote) y el procesamiento de escape estan deshabilitados por defecto. Si desea manejar CSV con caracteres separadores o saltos de linea dentro de campos entrecomillados (compatible con RFC 4180), especifique explicitamente quote_disabled=false para habilitar el procesamiento de comillas. Consulte la seccion «Habilitacion del procesamiento de comillas y escape» mas adelante para mas detalles.
Lista de parametros
| Parametro | Requerido | Descripcion |
|---|---|---|
files | No | Ruta del archivo CSV (ruta local, multiples rutas separadas por comas). Se requiere especificar files o directories. Si se especifican ambos, files tiene prioridad. Los archivos deben tener extension .csv o .tsv; los archivos con otras extensiones son omitidos. |
directories | No | Ruta del directorio que contiene archivos CSV (multiples rutas separadas por comas). Solo se procesan los archivos .csv y .tsv dentro del directorio. Se utiliza cuando no se especifica files. |
file_encoding | No | Codificacion de caracteres (predeterminado: UTF-8) |
has_header_line | No | Si tiene fila de encabezado (predeterminado: false) |
separator_character | No | Caracter separador (predeterminado: coma ,). Se pueden especificar secuencias de escape como \t (separador de tabulador). |
quote_character | No | Caracter de comillas (predeterminado: comillas dobles "). Sin embargo, el procesamiento de comillas esta deshabilitado por defecto (consulte quote_disabled). |
escape_character | No | Caracter de escape (predeterminado: barra invertida \). Sin embargo, el procesamiento de escape esta deshabilitado por defecto (consulte escape_disabled). |
Nota
Si tanto files como directories estan vacios, se producira un error (DataStoreException). Debe especificar al menos uno de los dos.
Parametros avanzados
Los siguientes parametros controlan de forma detallada el comportamiento del analisis del CSV:
| Parametro | Descripcion |
|---|---|
quote_disabled | Si deshabilitar el procesamiento de comillas (predeterminado: true). Especifique false para manejar campos entrecomillados compatibles con RFC 4180. |
escape_disabled | Si deshabilitar el procesamiento de escape (predeterminado: true). Especifique false para habilitar el escape mediante escape_character. |
skip_lines | Numero de lineas iniciales a omitir (predeterminado: 0) |
ignore_line_patterns | Patron de expresion regular para ignorar lineas (por ejemplo: ^#.* para ignorar lineas de comentario) |
ignore_empty_lines | Si ignorar las lineas vacias (predeterminado: false) |
ignore_trailing_whitespaces | Si ignorar los espacios en blanco al final (predeterminado: false) |
ignore_leading_whitespaces | Si ignorar los espacios en blanco al inicio (predeterminado: false) |
null_string | Cadena que se trata como valor nulo |
break_string | Cadena que reemplaza los saltos de linea dentro de los valores de campo |
readInterval | Tiempo de espera por cada registro procesado (milisegundos) (predeterminado: 0) |
Configuracion de scripts
Los valores de cada campo se construyen referenciando los valores de cada columna del CSV. Las columnas del CSV pueden referenciarse directamente en el script como variables sin prefijo (no se usa ningun prefijo como data.).
Con encabezado (referenciando por nombre de columna):
Sin encabezado (referenciando por indice de columna):
Campos disponibles
<nombre_columna>- Referencia directa por nombre de columna del encabezado (solo cuandohas_header_line=truey el nombre de columna no esta en blanco)cell<N>- Referencia por indice de columna (empezando desde 1:cell1,cell2…; disponible independientemente de si hay encabezado)csvfile- Ruta completa del archivo CSV que se esta procesandocsvfilename- Nombre del archivo CSV que se esta procesando
Nota
Si el nombre de columna contiene caracteres invalidos como identificadores de Groovy (espacios, guiones, etc.), no se puede referenciar por nombre de columna. En ese caso, use cell<N>.
Detalles del formato CSV
CSV estandar (compatible con RFC 4180)
Nota
Para incluir el caracter separador dentro de un campo entrecomillado como "Book, Programming" arriba, es necesario especificar quote_disabled=false para habilitar el procesamiento de comillas. Cuando el procesamiento de comillas esta deshabilitado (valor predeterminado), las comillas se tratan como caracteres normales y los campos se dividen por el caracter separador.
Habilitacion del procesamiento de comillas y escape
El procesamiento de comillas y el procesamiento de escape estan deshabilitados por defecto. Habilitelos explicitamente de la siguiente manera.
Habilitar el procesamiento de comillas:
Habilitar el procesamiento de escape:
Cambiar el separador
Delimitado por tabulador (TSV):
Delimitado por punto y coma:
Comillas personalizadas
Comillas simples (requiere habilitar el procesamiento de comillas):
Codificacion
Archivo en espanol con codificacion Shift_JIS:
Archivo con codificacion EUC-JP:
Ejemplos de uso
CSV de catalogo de productos
Archivo CSV (products.csv):
Parametros:
Script:
Filtrado por informacion de stock:
CSV de directorio de empleados
Archivo CSV (employees.csv):
Parametros:
Script:
CSV sin encabezado
Archivo CSV (data.csv):
Parametros:
Script:
Integracion de multiples archivos CSV
Parametros:
Script:
Archivo delimitado por tabulador (TSV)
Archivo TSV (data.tsv):
Parametros:
Script:
Solucion de problemas
Archivo no encontrado
Sintoma: El crawl se ejecuta pero el archivo no se procesa; el log muestra is not found
Verificaciones:
Verificar que la ruta del archivo sea correcta (se recomienda ruta absoluta)
Confirmar que el archivo existe
Verificar que la extension del archivo sea
.csvo.tsv(los archivos con otras extensiones son omitidos)Verificar que tiene permisos de lectura
Confirmar que es accesible desde el usuario que ejecuta Fess
Caracteres ilegibles
Sintoma: Los caracteres no se muestran correctamente
Solucion:
Especificar la codificacion correcta:
Verificar la codificacion del archivo:
Las columnas no se reconocen correctamente
Sintoma: El delimitador de columnas no se reconoce correctamente, o los campos entrecomillados se dividen incorrectamente
Verificaciones:
Verificar que el caracter separador sea correcto:
Para manejar campos entrecomillados (campos que contienen el caracter separador), habilitar el procesamiento de comillas:
Verificar el formato del archivo CSV (si cumple con RFC 4180)
Manejo de la fila de encabezado
Sintoma: La primera fila se reconoce como datos
Solucion:
Cuando hay fila de encabezado:
Cuando no hay fila de encabezado:
No se obtienen datos
Sintoma: El crawl tiene exito pero el conteo es 0
Verificaciones:
Verificar que el archivo CSV no este vacio
Verificar que la configuracion del script sea correcta (comprobar que las referencias a nombres de columna o
cell<N>no llevan el prefijodata.)Verificar que los nombres de columna sean correctos (cuando has_header_line=true)
Revisar los mensajes de error en el log
Archivo CSV grande
Sintoma: Memoria insuficiente o timeout
Solucion:
Dividir el archivo CSV en varios
Usar solo las columnas necesarias en el script
Aumentar el tamano del heap de Fess
Filtrar filas innecesarias
Campo con saltos de linea
En formato RFC 4180, los campos con saltos de linea pueden manejarse entrecomillandolos. Como el procesamiento de comillas esta deshabilitado por defecto, es necesario especificar quote_disabled=false:
Parametros:
CsvListDataStore
El plugin fess-ds-csv incluye, ademas de CsvDataStore, el handler CsvListDataStore.
CsvListDataStore extiende CsvDataStore y proporciona las siguientes funciones adicionales:
Procesamiento multihilo (controlado mediante el parametro
numOfThreads)Eliminacion automatica de archivos CSV procesados
Filtrado de archivos basado en marca de tiempo (omite archivos que aun se estan escribiendo)
Todos los parametros y configuraciones de script de CsvDataStore pueden utilizarse sin cambios.
Configuracion basica
| Campo | Ejemplo |
|---|---|
| Nombre del handler | CsvListDataStore |
Parametros adicionales
| Parametro | Requerido | Descripcion |
|---|---|---|
timestamp_margin | No | Tiempo transcurrido desde la ultima modificacion del archivo (milisegundos). Los archivos que no hayan superado este tiempo se consideran en proceso de escritura y son omitidos (predeterminado: 10000) |
numOfThreads | No | Numero de hilos de procesamiento (predeterminado: 1) |
Nota
CsvListDataStore elimina automaticamente los archivos CSV tras procesarlos. Si se produce un error durante el procesamiento, el archivo se renombra con extension .txt (si el renombrado falla, el archivo se elimina).
Ejemplos avanzados de scripts
Procesamiento de datos
Indexado condicional
Concatenacion de multiples columnas
Formato de fecha
Informacion de referencia
Descripcion General de los Conectores de Almacen de Datos - Descripcion general de conectores de Data Store
Conector JSON - Conector JSON
Conector de Base de Datos - Conector de base de datos
Rastreo de Almacén de Datos - Guia de configuracion de Data Store