Índices de texto completo en la geodatabase

Un índice de texto completo es un índice especializado que almacena información sobre palabras individuales (tokens) y sus ubicaciones dentro de los campos de texto. Una vez creado, un índice de texto completo permite una búsqueda rápida y eficiente de grandes volúmenes de contenido de texto en busca de palabras, frases o expresiones concretas.

Propósito y beneficios de los índices de texto completo

El propósito principal de los índices de texto completo es mejorar la capacidad de buscar y recuperar datos de texto de forma rápida y precisa. Estos son algunos de sus beneficios clave:

  • Búsqueda de texto eficiente: los índices de texto completo pueden permitir unas búsquedas más rápidas dentro de los campos de texto en comparación con los índices de atributos normales. Esto se debe a que están optimizados para realizar operaciones de búsqueda de texto, lo que reduce la necesidad de examinar una tabla entera.
  • Capacidades de consulta complejas: los índices de texto completo admiten consultas complejas, como búsqueda de frases, búsquedas de proximidad y clasificación de resultados por relevancia.
  • Rendimiento mejorado: al indexar los datos de texto, los índices de texto completo pueden mejorar significativamente el rendimiento de las operaciones de búsqueda. Esto es especialmente importante para datasets grandes en los que las búsquedas de texto pueden consumir muchos recursos.
  • Compatibilidad con múltiples campos: en SQL Server, un único índice de texto completo puede incluir varios campos de una tabla, lo que permite realizar búsquedas de texto exhaustivas en diferentes columnas.

Veamos la siguiente analogía de ejemplo para ayudar a explicar los beneficios de utilizar índices de texto completo:

La tabla de contenido de un libro muestra en qué página se encuentra cada capítulo. Si desea ir al capítulo 7, puede consultar la tabla de contenido, ir a esa página y encontrar lo que necesita. Si está tratando de recordar una cita importante que incluye la palabra "humanidad", pero no sabe en qué capítulo está, la tabla de contenido no le ayudará. Tendría que hojear todas las páginas para encontrar la cita, a menos que el libro tenga un índice de texto completo. Un índice de texto completo enumera cada palabra del libro junto con los números de página en las que se encuentran. Esto permite buscar rápidamente palabras como humanidad e incluso encontrar frases como "un gran salto para la humanidad".

Plantéese utilizar índices de texto completo cuando necesite realizar búsquedas de texto complejas dentro de un campo de texto. Más específicamente, los índices de texto completo son especialmente útiles para lo siguiente:

  • Búsquedas de una sola palabra: busca palabras individuales dentro de un campo de texto, como huracán o Florida.
  • Búsquedas de frases: busca una frase, que es un grupo de palabras. Para buscar utilizando una frase, rodee el grupo de palabras con comillas dobles, por ejemplo, "rutas de evacuación".

El siguiente escenario es un ejemplo que ilustra la utilidad de los índices de texto completo.

Una empresa de servicios de gas realiza un seguimiento de los informes de inspección y los documentos de seguridad de su red de tuberías. La aplicación de un índice de texto completo a los campos de texto de una geodatabase que contiene informes de inspección, descripciones de seguridad y registros de mantenimiento permite realizar búsquedas de texto completo para respaldar consultas sobre frases de términos, como fuga de gas o corrosión de tubería, lo que mejora la velocidad y la precisión de los controles de seguridad y la planificación del mantenimiento.

Red de tuberías de un servicio de gas

Obtenga más información sobre la creación de una red de servicios y la configuración de gas de una red de servicios.

Los índices de texto completo están diseñados para mejorar las capacidades de búsqueda de texto en bases de datos. A diferencia de los índices de atributos, que se centran en columnas específicas, y de los índices espaciales, que manejan datos geográficos, los índices de texto completo optimizan las búsquedas dentro de los campos de texto al indexar cada palabra. Esto permite llevar a cabo una búsqueda eficiente, realizar consultas complejas como búsquedas de frases y lograr un mejor rendimiento en la recuperación de datos de texto relevantes.

Consulte Índices en la geodatabase para ver una comparación en forma de tabla de los índices de atributos, de texto completo y espaciales.

Cómo funcionan los índices de texto completo

Los índices de texto completo son una potente herramienta para ayudar a buscar rápidamente en grandes cantidades de datos basados ​​en texto. Una vez que se crea un índice de texto completo en un campo, se pueden utilizar búsquedas rápidas y eficientes de grandes volúmenes de contenido de texto en busca de palabras, frases o expresiones concretas.

Las búsquedas de texto están disponibles en varias partes de ArcGIS, incluidas las siguientes:

  • API REST de ArcGIS Portal Directory: para consultar datos a través de servicios web.
  • ArcObjects: para el acceso programático y la manipulación de datos SIG.
  • Panel Localizar: en ArcGIS Pro, utilice el panel Localizar para aplicar el modo de búsqueda de texto completo, El texto completo comienza por o Texto completo igual a, al campo en el que quiera realizar la búsqueda.
    Opciones del modo de búsqueda de texto completo al configurar la vista Localizar en el panel Localizar

Más información sobre los modos de búsqueda de texto completo y cómo localizar entidades o registros configurados mediante el uso del panel Localizar

Precaución:

ArcGIS Pro proporciona la capacidad de crear un índice de texto completo muy básico. La gestión y las opciones para personalizar un índice de texto completo deben completarse manualmente en el nivel DBMS mediante el uso de herramientas DBMS.

El siguiente escenario simula, a un nivel alto y simplificado, cómo se crea, almacena y utiliza un índice de texto completo para buscar y recuperar datos de texto de forma rápida y precisa.

La tabla GIS.Storm_Damage_Assessment contiene varios campos de atributos que detallan el tipo, la gravedad y la descripción de los daños notificados por propietarios de edificios después de algunas tormentas recientes. Los campos adicionales, no visibles en esta tabla, incluyen la dirección y la información de contacto de los propietarios.

Tabla GIS.Storm_Damage_Assessment antes de aplicar un índice de texto completo

Como corredor de seguros, configurar un índice de texto completo en el campo Damage _Description permitirá buscar rápidamente términos claves como canaletas, tejas, ventana, techo o goteras, para que pueda recomendar a cada propietario el contratista más adecuado para contactar en función del daño específico y el trabajo de reparación necesario en el edificio.

  1. Cree el índice de texto completo utilizando la herramienta Agregar índice de texto completo. En este ejemplo, se ha especificado el nombre de la tabla, GIS.Storm_Damage_Assessment, y el campo que contiene los datos de texto que se van a indexar, Damage_Description.
    Agregar un índice de texto completo en el campo Damage_Description
  2. Para rellenar el índice es necesario dividir el texto en el campo designado en términos clave individuales (tokens), organizarlos, rastrearlos y luego asignar la ubicación exacta de cada palabra en el campo de texto para lograr un acceso rápido.

    Estudio de caso:
    En la ilustración siguiente se simula a un nivel alto y simplificado cómo se divide un índice de texto completo en términos clave individuales y cómo se asignan sus ubicaciones en el campo de texto.

    En este ejemplo de la tabla GIS.Storm_Damage_Assessment, el primer valor de atributo en la fila 1 debajo del campo Damage_Description dice Tejas faltantes o levantadas. Como simulación de cómo se rellenaría este índice de texto completo, este texto se desglosaría en los siguientes términos clave, organizados alfabéticamente, y se registraría la ubicación exacta en la que aparece cada término en el campo de texto Damage_Description designado.

    • Faltante: aparece 4 veces, en las filas 1, 4, 8 y 9.
    • Levantada: aparece dos veces, en las filas 1 y 9.
    • Tejas: aparece 6 veces, en las filas 1, 3, 4, 5, 8 y 9.
    Índice de texto completo
    El índice actúa como glosario de todos los términos clave del campo indexado, organizando y rastreando la ubicación exacta donde aparece cada palabra en el índice original.

    Este proceso continuará hasta que todo el texto del campo de texto designado se haya dividido en términos clave, se haya organizado y se haya registrado la ubicación donde aparece cada término.

  3. Una vez completada la creación del índice de texto completo en el campo Damage_Description, puede utilizar el panel Localizar para aplicar el modo de búsqueda de texto completo Texto completo igual a al campo Damage_Description.

    En el panel Localizar, configure Texto completo igual a como modo de búsqueda del campo que contiene el índice de texto completo.

  4. En este ejemplo, en el panel Localizar, puede buscar la palabra Tejas.

    Sin un índice de texto completo aplicado, la búsqueda resultaría en un escaneo de tabla completa que llevaría más tiempo. Sin embargo, como el índice de texto completo se ha creado en el campo Damage_Description, en el panel Localizar puede consultar una sola palabra, Tejas, este campo. El panel Localizar utiliza una búsqueda de texto completo para identificar el término Tejas y localiza todas las filas en las que aparece el término clave en el campo indexado, de manera parecida a como sigue.

    Resultados de la consulta en el campo indexado de texto completo

    Los resultados de la búsqueda permitirán identificar rápidamente cualquier informe de daños que implique tejas para que el propietario del edificio pueda ponerse en contacto con el contratista más adecuado en función del desperfecto notificado.

Gestión de índices de texto completo en ArcGIS

La forma en que ArcGIS Pro crea índices de texto completo depende del tipo de geodatabase y, en el caso de geodatabases corporativas, varía en función del sistema de administración de bases de datos utilizado. Las dos secciones siguientes explican estas diferencias de funcionalidad.

Nota:

Tenga en cuenta lo siguiente si utiliza índices de texto completo:

  • Los índices de texto completo no son compatibles con las geodatabases de archivos ni con las geodatabases corporativas en Db2.
  • Índice único frente a varios índices: puede que algunos RDBMS admitan un solo índice de texto completo por tabla, mientras que otros pueden permitir varios.
  • Mantenimiento: los índices de texto completo deben ser mantenidos por la fuente de datos subyacente. Estos se actualizan para reflejar cambios en los datos, lo que puede afectar al rendimiento de la búsqueda.

Índices de texto completo en geodatabases móviles

Los índices de texto completo son compatibles con las geodatabases móviles. Las geodatabases móviles se almacenan en una base de datos SQLite y esta base de datos contiene la extensión FTS5 de forma nativa. La extensión SQLite FTS5 (búsqueda de texto completo) se utiliza para la indexación de texto completo en geodatabases móviles y crea tablas virtuales y tablas auxiliares adicionales para administrar los índices de texto completo. Esto significa que las geodatabases móviles también tienen la extensión FTS5 de forma nativa.

Índices de texto completo en geodatabases corporativas

ArcGIS Pro admite índices de texto completo en una tabla o clase de entidad de una geodatabase en cada una de las siguientes plataformas de sistemas de administración de bases de datos compatibles, cada una de ellas con configuraciones específicas:

  • Oracle
    • Admite índices de texto completo en campos de texto que no sean Unicode.
    • Requiere la conversión de campos Unicode a no Unicode para la indexación.
      Sugerencia:

      Utilice la herramienta Migrar campo de texto para migrar los tipos de campo de texto Unicode elegibles existentes a campos no Unicode. El dataset de entrada debe proceder de una geodatabase corporativa de Oracle, y los tipos de campo de texto Unicode elegibles que se pueden migrar a un tipo de campo de texto no Unicode incluyen los siguientes:

      • NVARCHAR2 se convertirá a VARCHAR2.
      • NCHAR se convertirá a VARCHAR2.
      • NCLOB se convertirá a CLOB.

  • PostgreSQL
    • Admite la creación de un índice de texto completo por campo.
  • SQL Server
    • La capacidad de búsqueda de texto completo es un componente opcional de SQL Server Database Engine, y debe habilitarse antes de continuar con los siguientes requisitos. Si la capacidad de texto completo aún no ha sido habilitada en su instancia de SQL Server, deberá volver a ejecutar el proceso de configuración de SQL Server.
    • Un catálogo de texto completo de SQL Server es un contenedor virtual para uno o más índices de texto completo. Utilice SQL Server para crear al menos un catálogo de texto completo en cada base de datos de SQL Server en la que se crearán índices de texto completo.

      Puede tener varios catálogos de texto completo en cada base de datos, pero un índice de texto completo solo puede pertenecer a un único catálogo de texto completo. Puede especificar un catálogo de texto completo predeterminado, que se utilizará si no se proporciona ninguno.

    • Cada usuario que vaya a crear índices de texto completo debe tener el permiso de REFERENCIAS otorgado en el catálogo de texto completo al que pertenecerá el índice.
    • SQL Server admite la creación de un único índice de texto completo por tabla, que puede incluir varios campos.
  • SAP HANA
    • De manera similar a PostgreSQL, admite un índice de texto completo por campo.

Agregar un índice de texto completo

Para utilizar la herramienta Agregar índice de texto completo para agregar un índice de texto completo a campos de texto específicos para admitir la búsqueda por una sola columna o por varias columnas en una geodatabase móvil o corporativa, siga estos pasos:

Nota:

La herramienta Agregar índice de texto completo no es compatible con las geodatabases de archivos ni con las geodatabases corporativas en Db2.

  1. Abra la herramienta de geoprocesamiento Agregar índice de texto completo yendo a la pestaña Análisis y haciendo clic en Herramientas en el grupo Geoprocesamiento. Como método alternativo, puede buscar la herramienta en el conjunto de herramientas Herramientas de administración de datos en la caja de herramientas Índices.
    La herramienta Agregar índice de texto completo en la pestaña Análisis, Herramientas y Geoprocesamiento

    El cuadro de diálogo de la herramienta de geoprocesamiento Agregar índice de texto completo aparece con la configuración predeterminada.

    Cuadro de diálogo de la herramienta de geoprocesamiento Agregar índice de texto completo

  2. Para Tabla de entrada, seleccione un solo dataset en el menú desplegable o utilice el botón Examinar Examinar para elegir una clase de entidad o una tabla a la que agregar un índice de texto completo.
    Nota:

    Obtenga más información sobre la gestión de índices de texto completo en ArcGIS.

  3. Para Campos a indexar, seleccione un solo campo o varios campos para aplicarles un índice de texto completo.
    Parámetro Campos a indexar
    Nota:

    Algunas bases de datos solo admiten un único campo para la creación de índices de texto completo. La compatibilidad para la creación de un índice de texto completo de varios campos varía según la base de datos.

  4. Si lo desea, el nombre de este parámetro cambiará según la fuente de su Tabla de entrada.
    • Nombre de índice de texto completo: proporcione un nombre para el índice que se va a crear. El parámetro Nombre de índice de texto completo aparece de forma predeterminada.
      Nombre de índice de texto completo
      Nota:

      Para SQL Server, SQLite y las geodatabases móviles, el parámetro Nombre de índice de texto completo se ignorará.

    • Nombre de catálogo de texto completo: seleccione el nombre del catálogo de texto completo de SQL Server que desea utilizar en el parámetro Nombre de catálogo de texto completo. La opción Nombre de catálogo de texto completo solo se aplica para SQL Server.
      Nombre de catálogo de texto completo
      Nota:

      Si no se proporciona el Nombre de catálogo de texto completo, la herramienta intentará utilizar el catálogo de texto completo predeterminado definido para la base de datos, si está accesible. De lo contrario, seleccione un catálogo de texto completo de la lista desplegable. La lista desplegable incluye todos los catálogos de texto completo a los que puede acceder el usuario conectado.

  5. Haga clic en Ejecutar para agregar un índice de texto completo a un campo.

    Nota:

    También puede seleccionar Programar ejecución para ejecutar la herramienta en un momento posterior y, si lo desea, de forma recurrente, utilizando el menú desplegable junto al botón Ejecutar.

    Programar ejecución

    Más información sobre cómo planificar las herramientas de geoprocesamiento

Una vez completada la ejecución de la herramienta Agregar índice de texto completo, en el cuadro de diálogo de propiedades de su tabla o clase de entidad, en la pestaña Índices aparecerá Nombre de índice de texto completo.

Cuándo actualizar un índice de texto completo

Los índices de texto completo son mantenidos por el RDBMS y deben actualizarse periódicamente para reflejar los cambios en los datos, lo que garantizará que las búsquedas devuelvan resultados precisos. La frecuencia de actualización de un índice de texto completo dependerá del volumen de ediciones realizadas en los datos junto con la configuración de su base de datos. La gestión, actualización y regeneración de índices de texto completo en una geodatabase corporativa se deben completar manualmente en el nivel DBMS mediante el uso de herramientas DBMS.

En el caso de las geodatabases móviles, la extensión SQLite FTS5 (búsqueda de texto completo) permite realizar búsquedas eficaces de texto completo mediante la creación de una tabla virtual que se actualiza automáticamente cuando los datos subyacentes cambian, lo que elimina la necesidad de llevar a cabo la reconstrucción manual de índices.

Temas relacionados