Implementar compresión alta .NET con GroupDocs: Guía de texto y redacción
En soluciones .NET modernas, implement high compression .net es esencial cuando necesitas almacenar colecciones masivas de texto sin agotar el espacio en disco. Al mismo tiempo, proteger información sensible —como identificadores personales o cifras financieras— requiere una redacción confiable. Este tutorial te muestra, paso a paso, cómo configurar el almacenamiento de texto con alta compresión usando GroupDocs.Search y cómo redactar de forma segura datos confidenciales con GroupDocs.Redaction. Al final, podrás comprimir el texto indexado hasta en un 90 % y eliminar contenido privado de PDFs, archivos Word y muchos otros formatos.
Respuestas rápidas
- ¿Qué biblioteca proporciona indexación de alta compresión? GroupDocs.Search for .NET.
- ¿Qué herramienta redacta datos sensibles? GroupDocs.Redaction for .NET.
- ¿Puedo agregar documentos al índice automáticamente? Sí—use the
AddDocumentAPI inside a folder‑scan loop. - ¿La compresión es sin pérdida para la búsqueda? Sí, the text remains fully searchable after compression.
- ¿Necesito una licencia para producción? Se requiere una licencia permanente de GroupDocs para uso comercial.
Qué es “implement high compression .net”?
Implement high compression .net significa configurar el motor de indexación GroupDocs.Search para almacenar el contenido textual extraído en forma comprimida. Esto reduce drásticamente el tamaño del índice en disco mientras mantiene el texto completamente buscable. La compresión es sin pérdida, por lo que la relevancia de las consultas y la extracción de fragmentos funcionan exactamente como con un índice sin comprimir.
¿Por qué usar GroupDocs para compresión y redacción?
GroupDocs.Search admite más de cincuenta formatos de entrada y puede comprimir el texto indexado hasta en un noventa por ciento, permitiendo que grandes colecciones de documentos ocupen solo una fracción de su tamaño original. GroupDocs.Redaction complementa esto borrando o enmascarando permanentemente información sensible en más de treinta tipos de archivos, ayudándote a cumplir regulaciones estrictas como GDPR y HIPAA sin herramientas adicionales.
Requisitos previos
- Entorno de desarrollo: Visual Studio 2022 o posterior, .NET 6+ (o .NET Framework 4.7.2).
- Bibliotecas: paquetes NuGet
GroupDocs.SearchyGroupDocs.Redaction. - Permisos: Acceso de lectura/escritura a las carpetas que contienen los documentos fuente y la ubicación de salida del índice.
- Conocimientos básicos: sintaxis de C#, I/O de archivos y familiaridad con la estructura de proyectos .NET.
¿Cómo implementar compresión alta .NET con GroupDocs?
Para implementar compresión alta .NET con GroupDocs, primero crea una instancia de TextStorageSettings y establece su CompressionLevel a High. Luego instancia un objeto Index, pasando la configuración y la carpeta donde se almacenará el índice. Después de que el índice esté listo, agrega documentos usando AddDocument, y finalmente ejecuta búsquedas con el método Search, todo mientras el motor maneja de forma transparente la compresión y descompresión.
Paso 1: Instalar los paquetes NuGet requeridos
.NET CLI
dotnet add package GroupDocs.Search
dotnet add package GroupDocs.Redaction
Package Manager
Install-Package GroupDocs.Search
Install-Package GroupDocs.Redaction
NuGet Package Manager UI
- Busca “GroupDocs.Search” y haz clic en Install.
Paso 2: Instalar GroupDocs.Redaction (para la redacción de datos)
- Abre el NuGet Package Manager.
- Busca GroupDocs.Redaction e instala la versión estable más reciente.
Paso 3: Obtener y aplicar una licencia
- Prueba gratuita: Regístrate en el portal de GroupDocs para obtener una clave de prueba de 30 días.
- Licencia temporal: Solicita una clave temporal para entornos de desarrollo.
- Licencia permanente: Compra una licencia de producción para eliminar las limitaciones de evaluación.
Paso 4: Inicialización básica de ambas bibliotecas
Los motores Search y Redaction comparten un modelo de licencia común. Inicialízalos al iniciar la aplicación:
// Initialize GroupDocs.Search
var searchLicense = new License();
searchLicense.SetLicense("path/to/search.lic");
// Initialize GroupDocs.Redaction
var redactionLicense = new License();
redactionLicense.SetLicense("path/to/redaction.lic");
using GroupDocs.Redaction;
// Initialize the Redactor with your document path
Redactor redactor = new Redactor("YOUR_DOCUMENT_PATH");
Función 1: Configuración de almacenamiento de texto con alta compresión
Configuración de la indexación
TextStorageSettings es la clase que indica a GroupDocs.Search cómo mantener el texto extraído. Habilitar la alta compresión reduce el tamaño del índice hasta en 10× sin afectar la velocidad de búsqueda.
var textStorage = new TextStorageSettings
{
Compression = CompressionLevel.High, // Enables maximum compression
UseMemoryCache = false // Reduces RAM usage for huge indexes
};
using GroupDocs.Search;
using GroupDocs.Search.Options;
// Creating an index settings instance
dIndexSettings settings = new IndexSettings();
settings.TextStorageSettings = new TextStorageSettings(Compression.High);
Explicación:
CompressionLevel.Highactiva un algoritmo basado en ZSTD que comprime bloques de texto de manera eficiente.UseMemoryCache = falseobliga al motor a transmitir datos desde el disco, lo cual es ideal para implementaciones a gran escala.
Creación y gestión del índice
El objeto Index representa el repositorio buscable en disco. Especificas la carpeta donde se almacenarán los archivos del índice y pasas la configuración de compresión definida anteriormente.
var indexFolder = @"C:\Indexes\HighCompression";
var settings = new IndexSettings { TextStorage = textStorage };
var index = new Index(indexFolder, settings);
string indexFolder = "/path/to/your/index/directory";
Index index = new Index(indexFolder, settings);
Explicación:
indexFolderdetermina dónde viven los archivos de índice comprimidos.settingsinyecta la configuración de alta compresión, asegurando que cada documento agregado se beneficie de ella.
Función 2: Agregar documentos al índice
Agregar documentos a tu índice
AddDocument agrega un solo archivo al índice, extrayendo su texto, comprimiéndolo según la configuración establecida y almacenando el resultado. GroupDocs.Search puede ingerir archivos de un árbol de directorios. El siguiente bucle recorre documentsFolder, agrega cada archivo y registra el progreso.
var documentsFolder = @"C:\SourceDocs";
foreach (var filePath in Directory.GetFiles(documentsFolder, "*.*", SearchOption.AllDirectories))
{
index.AddDocument(filePath);
}
string documentsFolder = "/path/to/your/documents";
index.Add(documentsFolder);
Explicación:
AddDocumentanaliza el archivo, extrae texto buscable, lo comprime segúnTextStorageSettingsy lo almacena en el índice.- Este enfoque funciona para PDF, DOCX, TXT, HTML y más de 30 formatos adicionales.
Función 3: Ejecutar una consulta de búsqueda
Realizar una búsqueda
Search ejecuta una consulta contra el índice comprimido y devuelve una colección de objetos DocumentResult coincidentes con puntuaciones de relevancia y fragmentos resaltados. Una vez que el índice está poblado, puedes ejecutar consultas rápidas. El método Search devuelve una colección de objetos DocumentResult que incluyen rutas de archivo y fragmentos resaltados.
var query = "confidential";
var results = index.Search(query);
foreach (var result in results)
{
Console.WriteLine($"{result.FilePath} – Score: {result.Score}");
}
string query = "searchTerm";
SearchResult result = index.Search(query);
Explicación:
- El motor de búsqueda escanea el texto comprimido directamente, por lo que la latencia de la consulta se mantiene baja incluso para índices que contienen millones de páginas.
Scoreindica la relevancia; valores más altos significan una mejor coincidencia.
¿Cómo redactar datos confidenciales con GroupDocs.Redaction?
La redacción de datos confidenciales con GroupDocs.Redaction comienza creando una instancia Redactor para el archivo objetivo. Define uno o más objetos SearchPattern que describen el texto a eliminar, como expresiones regulares para números de seguro social. Aplica cada patrón usando Redact, especificando un RedactionType como BlackOut, y guarda el resultado como un nuevo documento, asegurando que el original permanezca intacto.
Redactor es la clase principal en GroupDocs.Redaction utilizada para cargar un documento y realizar operaciones de redacción.SearchPattern define una expresión regular que identifica el texto a redactar.
var redactor = new Redactor(@"C:\Docs\Sensitive.pdf");
redactor.Apply(new RedactionOptions
{
SearchPattern = @"\b\d{3}-\d{2}-\d{4}\b", // SSN pattern
RedactionColor = Color.Black,
RedactionType = RedactionType.BlackOut
});
redactor.Save(@"C:\Docs\Sensitive_redacted.pdf");
using GroupDocs.Search;
using GroupDocs.Search.Options;
// Creating an index settings instance
dIndexSettings settings = new IndexSettings();
settings.TextStorageSettings = new TextStorageSettings(Compression.High);
Explicación:
SearchPatternusa una expresión regular para localizar números de seguro social.RedactionType.BlackOutreemplaza el texto coincidente con un rectángulo negro sólido, asegurando que los datos no puedan recuperarse.
Aplicaciones prácticas
- Gestión de documentos legales: Comprime automáticamente archivos de casos masivos y redacta los identificadores de clientes antes de archivarlos.
- Registros de salud: Almacena años de notas de pacientes en un índice comprimido y elimina PHI (Información de Salud Protegida) antes de compartir con socios de investigación.
- Informes financieros: Asegura los informes trimestrales redactando números de cuenta mientras mantienes el texto buscable para consultas de auditoría.
Consideraciones de rendimiento
- Impacto de la compresión: La alta compresión reduce el tamaño del índice hasta en 90 %, lo que disminuye el desgaste del SSD y acelera las operaciones de respaldo.
- Uso de memoria: Desactiva el caché en memoria para índices muy grandes para mantener la huella del proceso por debajo de 500 MB.
- Optimización de I/O: Agrupa la adición de documentos en lotes de 100 para minimizar la sobrecarga del disco.
- Procesamiento asíncrono: Envuelve las llamadas a
AddDocumentenTask.Runpara mantener los hilos de UI responsivos en aplicaciones de escritorio.
Problemas comunes y solución de errores
- Rutas de archivo incorrectas: Verifica que
documentsFolderyindexFoldersean rutas absolutas y que la aplicación tenga permisos de lectura/escritura. - Errores de licencia: Asegúrate de que los archivos
.licestén desplegados junto al ejecutable o incrustados como recursos. - La búsqueda no devuelve resultados: Comprueba que el nivel de compresión de
TextStorageSettingscoincida con el usado durante la indexación; configuraciones incompatibles pueden causar fallas de deserialización.
Preguntas frecuentes
Q: ¿Puedo agregar documentos al índice después de la construcción inicial?
A: Sí—simplemente llama a index.AddDocument para archivos nuevos; el motor actualiza el índice comprimido de forma incremental.
Q: ¿La redacción altera el archivo original?
A: No—el archivo original permanece intacto; la versión redactada se guarda como un nuevo archivo, preservando la integridad del documento.
Q: ¿Qué formatos admite GroupDocs.Redaction?
A: Más de 30 formatos, incluidos PDF, DOCX, PPTX, XLSX, imágenes (PNG, JPEG) y texto plano.
Q: ¿Cómo afecta la alta compresión a la relevancia de la búsqueda?
A: No lo hace. La compresión es sin pérdida para el texto, por lo que las puntuaciones de relevancia son idénticas a un índice sin comprimir.
Q: ¿Existe un límite al tamaño de los documentos que puedo indexar?
A: GroupDocs.Search puede manejar archivos de varios gigabytes transmitiendo el contenido; sin embargo, asegúrate de contar con suficiente espacio en disco para el índice comprimido (aproximadamente el 10 % del tamaño original).
Recursos
- Documentación
- Referencia de API
- Descargar GroupDocs.Redaction para .NET
- Foro de soporte gratuito
- Obtención de licencia temporal
Última actualización: 2026-06-07
Probado con: GroupDocs.Search 23.12 y GroupDocs.Redaction 23.12 para .NET
Autor: GroupDocs