Blog

Indexación de campos objeto texto y texto enriquecido

Una de las novedades que estarán disponibles en V7 y que ya podéis probar en la última beta que os hemos suministrado es la indexación de campos objeto texto y campos objeto texto enriquecido.

Creación de un índice

Para configurar la indexación de un objeto texto o texto enriquecido hemos de crear un índice al uso, tal y como hacemos para cualquier otro campo. La diferencia estriba en que, a la hora de crear una parte de índice a indexar, tendremos la opción de elegir de entre los campos objeto cuál queremos indexar, además del resto de campos indexables.

Indexación de campos objeto texto y texto enriquecido 1

La única limitación que encontramos a la hora de indexar un objeto texto o texto enriquecido es el tipo de índice que podemos crear. Así, únicamente estarán disponibles los índices tipo Palabras y tipo Trozos (Aproximación alfabética ternaria). Si lo pensamos bien, en realidad son los únicos que tienen sentido realizar, ya que una indexación de tipo Acepta repetidas, Clave única o Múltiples claves no tienen razón de ser para textos extensos que es lo que contienen ambos tipos de campo.

Pero lo que si nos permite es combinar campos objeto texto o texto enriquecido con otros tipos de campo, por lo que podemos crear un índice compuesto por un campo objeto texto y un campo Alfa-128, Alfa-64, etc., o combinado con un campo fecha, numérico, etc.

Características de la indexación

La indexación que se realiza de los textos es completa. En el caso de los campos texto enriquecido no incluye la codificación propia del texto enriquecido, es decir, los elementos que definen el aspecto del texto, pero sí el texto en si que contiene.

Indexación de campos objeto texto y texto enriquecido 2

Que estén limitados los tipos de índice a usar, no quiere decir que no podamos usar todas las características disponibles. Así, por ejemplo, un uso muy interesante que está disponible en los índices de palabras, que es la lista negra, cobra especial importancia en el uso de este índice, permitiéndole sacar mucho partido ya que, sobre todo en textos muy extensos, el ahorro en elementos que no queramos indexar es muy importante.

Velocidad del proceso de indexación

La velocidad del proceso de indexación dependerá del tamaño del texto en el alta (y obviamente de la velocidad de escritura del disco). Así, para textos de unos 4.000.000 caracteres, los tiempos estimados en las pruebas han sido de unos dos minutos (estamos hablando de libros enteros), es decir, más de 33.000 caracteres por segundo. Para textos de observaciones cortos, apenas notaremos los tiempos de indexación: una página, de unos 2000 caracteres (80 caracteres x 25 líneas), emplearía 0.06 segundos en indexarse.

Indexación de campos objeto texto y texto enriquecido 3

En la modificación, la velocidad del proceso de indexación dependerá de los cambios que se hayan realizado en el texto, ya que únicamente se tendrán en cuenta las diferencias entre la versión inicial y tras la modificación, por lo que la velocidad de indexación se verá aumentada si los cambios han sido reducidos gracias a una optimización que hemos implementado.

Funcionalidad

Estos índices nos permitirán encontrar por trozos o por palabras qué registros contienen la cadena buscada. Luego debemos ser nosotros los que encontremos en qué sitios se encuentra situada la cadena con ayuda de las funciones de fórmula disponibles (por ejemplo: indexOfString(), countString()).

La velocidad de búsqueda de registros es análoga a la velocidad de búsqueda por cualquier otro índice: las búsquedas por índices compuestos por campos objeto texto o texto enriquecido no se resienten en ningún caso, siendo la velocidad la misma que buscar por un índice compuesto por cualquier otro tipo de campo.

Indexación de campos objeto texto y texto enriquecido 4

Vemos por tanto que la potencia de trabajo con estos índices compuestos por campos objeto texto o texto enriquecido nos permite agregar funcionalidades que darán un valor añadido muy importante a las aplicaciones creadas con V7.

Futuro

En el diseño de los índices se ha tenido en cuenta la posibilidad de que devuelvan también la información de posición, además de otras funcionalidades relacionadas, que podrán ser desarrolladas en el futuro, aunque no está previsto su desarrollo para la salida de V7, pero que permitirán ampliar de forma importante su funcionalidad futura.

6 thoughts on “Indexación de campos objeto texto y texto enriquecido

Dejar un comentario