GroupDocs.Search for .NET 26.10 está ahora disponible. Esta es una versión mayor: el formato del índice ha sido rediseñado, por lo que los índices ocupan menos espacio en disco, necesitan la mitad de RAM y se abren de 2 a 4 veces más rápido. La búsqueda, eliminación, optimización y búsqueda de imágenes se aceleran varias a cientos de veces, las búsquedas ya no esperan a la indexación, y los datos del índice están protegidos con sumas de verificación y actualizaciones atómicas.
Los índices existentes creados por las versiones 22.7–26.8 se convierten al nuevo formato sin volver a indexar. La versión contiene 22 cambios: 4 nuevas características, 15 mejoras y 3 correcciones.
Aspectos destacados del rendimiento
La mayoría de las mejoras aumentan con el tamaño del índice y la cantidad de sus segmentos.
| Qué | Ganancia en 26.10 |
|---|---|
| RAM requerida por un índice cargado | 2 veces menos |
| Apertura de un índice | De 2 a 4 veces más rápido |
| Tamaño del índice en disco | Crece en proporción a los datos indexados; cuanto mayor es el índice, mayor es el ahorro |
| Búsqueda de una palabra en índices grandes | Hasta 2 veces más rápido; palabras raras de 10 a 40 veces más rápido |
| Búsqueda difusa en índices grandes | De 2.5 a 5 veces más rápido |
| Búsqueda con comodines en índices grandes | De 2.5 a 3 veces más rápido |
| Búsqueda con comodines, expresiones regulares, rango numérico y búsqueda difusa por fragmentos | De 7 a 150 veces más rápido |
| Búsqueda por rango de fechas | De 2 a 27 veces más rápido |
| Eliminación de documentos | Cientos de veces más rápido, 4 veces menos memoria, sin espacio adicional en disco |
| Optimización del índice | 4 veces más rápido, 4 veces menos memoria |
| RAM máximo durante la indexación | 2 veces menos |
| Recuperación del texto almacenado de un documento | Hasta 15 veces más rápido |
| Datos de búsqueda de imágenes | 2.9 veces menos memoria, cargado 6.6 veces más rápido, guardado 100 veces más rápido; búsqueda inversa de imágenes hasta 1.8 veces más rápido |
| Búsqueda mientras el índice se está modificando | Ya no se bloquea |
| Fiabilidad del índice | Sumas de verificación y cambios atómicos; las operaciones interrumpidas se completan o se revierten |
| Hilos de búsqueda | Todos los núcleos del procesador por defecto; se pueden cambiar en cualquier momento |
Novedades en esta versión
| Clave | Resumen | Categoría |
|---|---|---|
| SEARCHNET-3665 | Implementar la capacidad de cambiar el número de hilos de búsqueda en cualquier momento | Funcionalidad |
| SEARCHNET-3666 | Implementar una opción para reemplazar caracteres sustitutos no emparejados | Funcionalidad |
| SEARCHNET-3667 | Implementar una opción para omitir términos que consisten solo en caracteres combinados | Funcionalidad |
| SEARCHNET-3668 | Implementar la actualización de la versión del índice al nuevo formato sin volver a indexar los documentos | Funcionalidad |
| SEARCHNET-3669 | Implementar la optimización del consumo de espacio en disco de un índice | Mejora |
| SEARCHNET-3670 | Implementar la optimización del consumo de RAM de un índice cargado | Mejora |
| SEARCHNET-3671 | Implementar la optimización de la velocidad de carga del índice | Mejora |
| SEARCHNET-3672 | Implementar la optimización de la velocidad de búsqueda en índices grandes | Mejora |
| SEARCHNET-3673 | Implementar la optimización de la búsqueda difusa | Mejora |
| SEARCHNET-3674 | Implementar la optimización de la búsqueda con comodines | Mejora |
| SEARCHNET-3675 | Implementar la optimización de la eliminación y actualización de documentos | Mejora |
| SEARCHNET-3676 | Implementar la optimización de la operación de optimización del índice | Mejora |
| SEARCHNET-3677 | Permitir la búsqueda mientras el índice se está modificando | Mejora |
| SEARCHNET-3678 | Mejorar la fiabilidad del índice | Mejora |
| SEARCHNET-3679 | Implementar la optimización del uso de memoria durante la indexación | Mejora |
| SEARCHNET-3680 | Implementar la optimización de la recuperación del texto del documento | Mejora |
| SEARCHNET-3681 | Implementar la optimización de la búsqueda de imágenes | Mejora |
| SEARCHNET-3682 | Implementar el manejo de mayúsculas y minúsculas de forma idéntica en todas las plataformas | Mejora |
| SEARCHNET-3688 | Implementar la optimización de la búsqueda por fragmentos | Mejora |
| SEARCHNET-3683 | Corregir el número predeterminado de hilos de búsqueda | Corrección |
| SEARCHNET-3684 | Prevenir la indexación inconsistente después de cambiar los diccionarios de términos | Corrección |
| SEARCHNET-3685 | Prevenir la fusión de índices que procesan el texto de manera diferente | Corrección |
Características principales
Almacenamiento y fiabilidad del índice
- El tamaño del índice ahora crece en proporción a los datos indexados, por lo que los índices grandes con muchos segmentos ahorran más espacio.
- Un índice cargado necesita la mitad de RAM, y abrir un índice es de 2 a 4 veces más rápido.
- Los datos del índice están protegidos con sumas de verificación, y todos los cambios se aplican de forma atómica. Si una operación se interrumpe por un error, una falla de energía o la terminación del proceso, el índice permanece en su estado consistente anterior.
Búsqueda
- Solo se leen los segmentos que contienen los términos de la consulta, lo que acelera la búsqueda de palabras, difusa, con comodines y por fragmentos.
- La búsqueda utiliza todos los núcleos del procesador por defecto, y el número de hilos se puede cambiar en cualquier momento mediante
IndexSettings.SearchThreads. - Las búsquedas y las operaciones que modifican el índice (indexación, actualización, eliminación, fusión, optimización) ya no se bloquean entre sí. Cada búsqueda trabaja con una instantánea consistente del índice.
Indexación y mantenimiento
- Eliminar documentos ya no reescribe el índice: los documentos se excluyen de la búsqueda inmediatamente y se eliminan físicamente durante la optimización.
- La optimización del índice es 4 veces más rápida y usa 4 veces menos memoria; los índices muy grandes se optimizan en varios segmentos de tamaño limitado.
- La indexación consume aproximadamente la mitad de la RAM máxima.
Procesamiento de texto
- El manejo de mayúsculas y minúsculas se trata de forma idéntica en .NET Framework y .NET, por lo que los resultados de búsqueda no dependen de la plataforma.
- Los caracteres sustitutos no emparejados se reemplazan con U+FFFD en lugar de eliminarse, y los términos que consisten solo en caracteres combinados ya no se indexan.
Cambios en la API pública
Se han añadido dos propiedades a la clase GroupDocs.Search.IndexSettings:
Boolean ReplaceUnpairedSurrogates– reemplaza los caracteres sustitutos UTF-16 no emparejados con el carácter de reemplazo Unicode (U+FFFD). Habilitado por defecto.Boolean SkipBlendedOnlyTerms– excluye del índice los términos que consisten solo en caracteres combinados. Habilitado por defecto.
Ambas configuraciones se fijan cuando se crea un índice.
Ejemplo de código
El siguiente ejemplo actualiza un índice creado por una versión anterior al nuevo formato de índice sin volver a indexar los documentos.
string sourceIndexFolder = @"c:\MyOldIndex\"; // Specify path to the index of a previous version
string targetIndexFolder = @"c:\MyNewIndex\"; // Specify path to the folder for the updated index
IndexUpdater updater = new IndexUpdater(); // Creating an index updater
if (updater.CanUpdateVersion(sourceIndexFolder)) // Checking whether the index version can be updated
{
VersionUpdateResult result = updater.UpdateVersion(sourceIndexFolder, targetIndexFolder); // Updating the index version; the source index is not changed
}
Notas de actualización
Tenga en cuenta los siguientes cambios al actualizar desde una versión anterior:
- El formato del índice ha cambiado. Los índices de versiones anteriores deben convertirse con la clase
IndexUpdaterantes de poder abrirse. No se requieren los documentos de origen, el índice convertido se guarda en una carpeta diferente y el índice de origen no se modifica. - Los diccionarios de términos se fijan una vez que un índice contiene documentos. El alfabeto, el diccionario de tokenización, los reemplazos de caracteres, las palabras vacías y las configuraciones
UseStopWordsyUseCharacterReplacementsdeben configurarse antes de indexar el primer documento. Un cambio posterior lanzaInvalidOperationException. - Los índices incompatibles no se fusionan.
Index.MergelanzaInvalidOperationExceptionsi los índices fusionados dividen el texto en términos de manera diferente. - La búsqueda es multihilo por defecto. Con el valor predeterminado
IndexSettings.SearchThreads, la búsqueda usa tantos hilos como núcleos de procesador haya. Para limitar el número de hilos, establezca la propiedad explícitamente. - Dos nuevas configuraciones de índice están habilitadas por defecto. Para mantener el comportamiento anterior, establezca
ReplaceUnpairedSurrogatesySkipBlendedOnlyTermsenfalseantes de crear un índice. - Los documentos eliminados se eliminan físicamente durante la optimización. Llame a
Index.Optimizepara recuperar el espacio. - El número de fragmentos ha cambiado. La búsqueda por fragmentos ya no devuelve un fragmento por cada segmento. Itere sobre los fragmentos mientras
SearchResult.NextChunkSearchTokenno sea nulo en lugar de depender del número de segmentos.
Cómo obtener la actualización
NuGet
- NuGet – Instale el paquete más reciente:
# Package Manager
NuGet\Install-Package GroupDocs.Search -Version 26.10.0
# .NET CLI
dotnet add package GroupDocs.Search --version 26.10.0
# Package Manager
NuGet\Install-Package GroupDocs.Search.NETFramework -Version 26.10.0
# .NET CLI
dotnet add package GroupDocs.Search.NETFramework --version 26.10.0
Descarga directa
- Descarga directa – Descargue los ensamblados compilados para .NET desde la página oficial de lanzamientos:
https://releases.groupdocs.com/search/net/new-releases/groupdocs.search-for-.net-26.10-dlls-only/
https://releases.groupdocs.com/search/net/new-releases/groupdocs.search-for-.net-26.10/
Recursos
- Notas completas de la versión – https://releases.groupdocs.com/search/net/release-notes/2026/groupdocs-search-for-net-26-10-release-notes/
- Documentación – https://docs.groupdocs.com/search/net/
- Ejemplos de código – https://github.com/groupdocs-search/GroupDocs.Search-for-.NET/
- Foro de soporte gratuito – https://forum.groupdocs.com/c/search/
- Úselo desde agentes de IA – el servidor GroupDocs.Search MCP ejecuta este motor localmente para Claude, Cursor y Copilot: https://docs.groupdocs.com/search/mcp/ · ¿Necesita una base de datos vectorial para hacer preguntas sobre una carpeta de documentos?