4D Write Pro – Indexación de textos completos

Traducido automáticamente de Deepl

«¡Quiero encontrar todos los documentos que hablen de tango! ¡Los necesito rápidamente! ¿Puedo hacerlo?»

Bien, ¡pero primero respira!

La búsqueda de palabras clave dentro de los documentos de 4D Write Pro simplemente requiere añadir un nuevo atributo de indexación dentro de cada documento. Esto no se hace por defecto porque este tipo de búsqueda no es necesaria a menudo, por lo que no tendría sentido aumentar sistemáticamente el tamaño de los documentos. Sin embargo, cuando se necesita, este tipo de índice es muy fácil de construir.

«El tango es una danza tradicional argentina». Nuestro objetivo es crear una lista de palabras a partir del contenido de los documentos. Para ello se utilizan principalmente dos comandos:

  • WP Get text – devuelve el texto bruto del documento
  • Get text keywords – rellena una matriz de texto con las palabras del texto proporcionado. Una vez que este array ha sido rellenado, simplemente se añade como un atributo del objeto documento de 4D Write Pro, y se utiliza como objetivo para la búsqueda de palabras clave.

Veamos los detalles.

No se pierda nada enDentro del documento

WP Get text devuelve el contenido del objetivo como texto plano. El objetivo puede ser un rango determinado o un documento completo. Si pasa un documento como argumento, sólo se devolverá el texto del cuerpo del documento. Los encabezados y pies de página serán ignorados, lo que probablemente no sea deseable. Como cada sección de un documento puede tener sus propios encabezados y pies de página, tendrá que recorrer cada uno de ellos y leer su contenido. Asegúrese de tener en cuenta cualquier variante (por ejemplo, primera página, página de la derecha, página de la izquierda).

Poner el texto en un ARRAY

Get text keywords rellena un array basado en el contenido del texto de origen. La única sutileza aquí es no olvidar el parámetro opcional estrella (*). Le permite llenar el array sólo con valores que son distintos de las palabras del texto. Esto evita un «peso» innecesario 🙂

Crear el índice en el documento

El nombre del atributo que contendrá el índice depende de usted, sin embargo, se recomienda encarecidamente anteponer un guión bajo para evitar cualquier conflicto potencial con los atributos públicos existentes (o futuros) de los documentos de 4D Write Pro (Ejemplo: «_palabras clave».)

Por supuesto, esta indexación debe hacerse cada vez que se modifican los documentos, pero es una tarea realmente muy rápida y no causará ninguna ralentización notable para los usuarios.

Indexar el índice

Para que las consultas que utilizan el índice de palabras clave sean rápidas y eficaces, el propio documento debe estar indexado, por supuesto. No hay que preocuparse por el tamaño del índice. Sólo se indexan los atributos expuestos (públicos), por lo que sólo cabe esperar un tamaño muy reducido. Por ejemplo, no hay necesidad de crear un nuevo campo de objeto que sólo sirva para este propósito. Esto sería totalmente inútil y el espacio ocupado sería mayor que utilizar un objeto existente (es decir, el propio documento de 4D Write Pro).

En el caso de los campos de objeto, «Automático» significa «cluster b-tree», que es perfecto para cartas comerciales o documentos similares.

Hacer consultas en este índice

Las consultas clásicas deben hacerse «por atributo». Tenga en cuenta que el atributo es una colección, por lo que debe añadir corchetes de apertura y cierre [ ] para indicar a 4D que la búsqueda debe hacerse dentro de esta colección. Por ejemplo:

QUERY BY ATTRIBUTE([SAMPLE]; [SAMPLE]WP; "_palabras clave[]"; =; $val)

Las consultas ORDA se realizan siguiendo el mismo principio:

$entitySel:=ds.SAMPLE.query("WP._palabrasclave[] = :1"; $val )

Conclusión

Si en sus documentos no se ha previsto este tipo de indexación desde el principio y surge la necesidad, ¡nunca es demasiado tarde! Apply to selection del método de indexación hará el trabajo perfectamente. Las búsquedas también pueden combinarse para tener en cuenta varias palabras a la vez (todas las palabras) o por separado (al menos una de las palabras). Esto le permitirá (y sobre todo a los usuarios de sus bases de datos) encontrar muy rápidamente los textos en función de las palabras que contienen.

Ahora tiene dos métodos para crear (y quizás eliminar) el índice de texto completo. Pueden ser utilizados a partir de 4D V17. Vea este fragmento de código que puede utilizar en su propia aplicación.

Roland Lannuzel
- Propietario de Producto y Experto en 4D - Después de estudiar electrónica, Roland se dedicó a la informática industrial como desarrollador y consultor, construyendo soluciones para clientes con una variedad de bases de datos y tecnologías. A finales de los años 80 se enamoró de 4D y lo ha utilizado para escribir aplicaciones de negocio que incluyen sistemas de contabilidad, facturación y correo electrónico.Eventualmente se unió a la compañía en 1997, las valiosas contribuciones de Roland incluyen el diseño de especificaciones, herramientas de prueba, demos, así como la formación y hablar con la comunidad 4D en muchas conferencias. Continúa dando forma activamente al futuro de 4D definiendo nuevas características y herramientas de desarrollo de bases de datos.