Articulo de referencia

Índice invertido

En ciencias de la información , un índice invertido (también conocido como lista de entradas , archivo de entradas o archivo invertido ) es un índice de base de datos que almace...

En ciencias de la información , un índice invertido (también conocido como lista de entradas , archivo de entradas o archivo invertido ) es un índice de base de datos que almacena una correspondencia entre el contenido, como palabras o números, y sus ubicaciones en una tabla , o en un documento o conjunto de documentos (en contraste con un índice directo , que asigna de documentos a contenido). [ 1 ] El propósito de un índice invertido es permitir búsquedas rápidas de texto completo , a costa de un mayor procesamiento cuando se agrega un documento a la base de datos. [ 2 ] El archivo invertido puede ser el propio archivo de la base de datos, en lugar de su índice. Es la estructura de datos más popular utilizada en sistemas de recuperación de documentos , [ 3 ] utilizada a gran escala, por ejemplo, en motores de búsqueda . Además, varios sistemas de gestión de bases de datos importantes de propósito general basados ​​en mainframes han utilizado arquitecturas de lista invertida, incluidos ADABAS , DATACOM/DB y Model 204 .

Existen dos variantes principales de índices invertidos: un índice invertido a nivel de registro (o índice de archivo invertido o simplemente archivo invertido ) contiene una lista de referencias a documentos para cada palabra. Un índice invertido a nivel de palabra (o índice invertido completo o lista invertida ) contiene además las posiciones de cada palabra dentro de un documento. [ 4 ] Esta última forma ofrece más funcionalidad (como búsquedas de frases ), pero requiere mayor potencia de procesamiento y espacio para su creación.

Aplicaciones

La estructura de datos del índice invertido es un componente central de un algoritmo de indexación típico de un motor de búsqueda . [ 5 ] Un objetivo de la implementación de un motor de búsqueda es optimizar la velocidad de la consulta: encontrar los documentos donde aparece la palabra X. [ 6 ] Una vez que se desarrolla un índice directo , que almacena listas de palabras por documento, se invierte para desarrollar un índice invertido. Consultar el índice directo requeriría una iteración secuencial a través de cada documento y a cada palabra para verificar un documento coincidente. El tiempo, la memoria y los recursos de procesamiento para realizar dicha consulta no siempre son técnicamente realistas. En lugar de listar las palabras por documento en el índice directo, se desarrolla la estructura de datos del índice invertido que lista los documentos por palabra.

Una vez creado el índice invertido, la consulta se puede resolver saltando al ID de palabra (mediante acceso aleatorio ) en el índice invertido.

En la época anterior a la informática, las concordancias de libros importantes se elaboraban manualmente. Se trataba, en esencia, de índices invertidos con un breve comentario explicativo, cuya producción requería un enorme esfuerzo.

En bioinformática, los índices invertidos son fundamentales para el ensamblaje de secuencias de fragmentos cortos de ADN secuenciado. Una forma de determinar el origen de un fragmento es compararlo con una secuencia de ADN de referencia. Un pequeño número de discrepancias (debido a diferencias entre el ADN secuenciado y el de referencia, o a errores) se pueden corregir dividiendo el fragmento en subfragmentos más pequeños; es probable que al menos uno de ellos coincida con la secuencia de ADN de referencia. Esta comparación requiere la construcción de un índice invertido con todas las subcadenas de una longitud determinada a partir de la secuencia de ADN de referencia. Dado que el ADN humano contiene más de 3 mil millones de pares de bases, y necesitamos almacenar una subcadena de ADN para cada índice y un entero de 32 bits para el índice en sí, el espacio de almacenamiento necesario para dicho índice invertido probablemente sería de decenas de gigabytes.

Compresión

Por razones históricas, la compresión de listas invertidas y la compresión de mapas de bits se desarrollaron como líneas de investigación separadas, y solo más tarde se reconoció que resolvían esencialmente el mismo problema. [ 7 ]

Véase también

Referencias

  1. Knuth, DE (1997) [1973]. "6.5. Recuperación mediante claves secundarias". El arte de la programación informática (Tercera  ed.). Reading, Massachusetts : Addison-Wesley . ISBN 0-201-89685-0.
  2. Salton, Gerard; Fox, Edward A.; Wu, Harry (noviembre de 1983). "Recuperación de información booleana extendida" . Communications of the ACM . 26 (11): 1022– 1036. doi : 10.1145/182.358466 . hdl : 1813/6351 .
  3. Zobel, Justin; Moffat, Alistair; Ramamohanarao, Kotagiri (diciembre de 1998). "Archivos invertidos frente a archivos de firma para la indexación de texto" . ACM Transactions on Database Systems . 23 (4). Nueva York: Association for Computing Machinery : 453–490 . doi : 10.1145/296854.277632 . S2CID 7293918 . 
  4. Baeza-Yates, Ricardo ; Ribeiro-Neto, Berthier (1999). Recuperación moderna de información . Reading, Massachusetts : Addison-Wesley Longman. pág. 192. ISBN  0-201-39829-X.
  5. Zobel, Justin; Moffat, Alistair (julio de 2006). "Archivos invertidos para motores de búsqueda de texto". ACM Computing Surveys . 38 (2). Nueva York: Association for Computing Machinery : 6. doi : 10.1145/1132956.1132959 . S2CID 207158957 . 
  6. Recuperación de información: Implementación y evaluación de motores de búsqueda . Cambridge, Massachusetts: MIT Press. 2010. ISBN 978-0-262-02651-2Archivado del original el 5 de octubre de 2020. Consultado el 8 de agosto de 2010 .
  7. Wang, Jianguo; Lin, Chunbin; Papakonstantinou, Yannis; Swanson, Steven (9 de mayo de 2017). Un estudio experimental de la compresión de mapas de bits frente a la compresión de listas invertidas . Association for Computing Machinery. págs. 993–1008 . doi : 10.1145/3035918.3064007 . ISBN  978-1-4503-4197-4. Consultado el 1 de mayo de 2023 .{{cite book}}: |website=ignorado ( ayuda )
  • Diccionario de algoritmos y estructuras de datos del NIST: índice invertido
  • Managing Gigabytes for Java es un motor de búsqueda de texto completo gratuito para grandes colecciones de documentos escrito en Java.
  • Lucene - Apache Lucene es una biblioteca de motor de búsqueda de texto con todas las funciones escrita en Java.
  • Sphinx Search : biblioteca de motor de búsqueda de texto de código abierto, de alto rendimiento y con todas las funciones, utilizada por Craigslist y otros sitios que emplean un índice invertido.
  • Ejemplos de implementación en Rosetta Code
  • Caja de herramientas de búsqueda de imágenes a gran escala de Caltech : una caja de herramientas de Matlab que implementa la búsqueda de imágenes mediante el método de bolsa de palabras de archivos invertidos.