tipos que primary nonclustered indice index implica datos clustered cluster busqueda and agrupados indexing terminology

indexing - que - tipos de indices en base de datos



¿Cuál es la diferencia entre un índice invertido y un índice antiguo simple? (8)

El término "Índice de palabras invertidas" se refiere al cambio en la relación de un documento único que contiene muchas palabras, a cada palabra única que contiene (o identifica) una lista de muchos documentos. Esto está tomando una relación de uno a muchos (documentos a palabras) e invirtiéndolo (o invirtiéndolo) de manera tal que ahora existe una nueva relación "invertida" de uno a muchos, que es una palabra única relacionada con muchos. Documentos (es decir, todos los que contienen esa palabra). Su origen es así de simple, y el término "índice invertido" se utilizó para describir índices manuales del mismo tipo mucho antes de que existieran las computadoras y la indexación electrónica de alta velocidad (sí, claro, soy un viejo programador de geezer, casi lo suficientemente mayor como para haber considerado a Grace Hopper una edad "dulce jovencita" apropiada para cortejar cuando COBOL era un nuevo y brillante idioma). Por favor, no nos descarten aún más, ya que de vez en cuando podemos ofrecer un bit histórico útil, y posiblemente incluso valioso, histórico, cuando nuestra RAM personal todavía está funcionando, es decir. [mueca]

En ingeniería de software creamos índices todo el tiempo (p. Ej., En bases de datos) pero también escucho a mucha gente hablar sobre índices invertidos. ¿Hay algo fundamentalmente diferente entre los dos? Suenan como lo mismo.


Hay muchos tipos de índice. Por ejemplo, B-tree, R-tree, hash ... Para diferentes propósitos, debemos elegir el índice correcto.

El índice invertido es especial. Índice invertido generalmente utilizado en el motor de búsqueda de texto completo. Use el índice invertido, podemos encontrar la ubicación de una palabra en un documento (o conjunto de documentos) lo más rápido posible. Piense en el límite de la memoria y la CPU, otro índice no puede finalizar este trabajo.

Puede leer el documento de lucene para más detalles. Es un motor de búsqueda de código abierto. http://lucene.apache.org/java/docs/index.html


Lo llamaron invertido solo porque ya hay un índice hacia adelante. Tomemos el ejemplo del motor de búsqueda, compuesto por dos partes: la primera parte es "rastreador web y analizador" que construye un índice de documento a palabra, la segunda parte es la base de datos de búsqueda que construye un índice de palabra a documento. Debido a que existe el primer índice, naturalmente llamamos al segundo índice como índice invertido.

Si nombra TOC (tabla de contenido) de un libro como índice, debe llamar al índice al final del libro como "índice invertido". O, en otro lado, puede llamar al TOC como índice invertido.


Un uso común es en.wikipedia.org/wiki/Inverted_index

Los dos tipos denotan direccionalidad . Uno lo lleva adelante a través del índice, y el otro lo lleva hacia atrás (el inverso) a través del índice. Eso es. No hay misterio para descubrir aquí. De lo contrario, los dos tipos son idénticos, solo se trata de la información que tiene y, en consecuencia, de la información que está tratando de encontrar.

Para abordar su consulta, no creo que haya una forma de saber por qué el uso es lo que es hoy. La única razón por la cual es importante definir cuál es forward y cuál se inverted es para que todos podamos tener una conversación sobre ellos, y todos saben de qué dirección estamos hablando. Piense en los términos "izquierda" y "derecha": son relativos. Lo cual es lo que no importa, excepto que todos necesitan acordar cuál es "izquierda" y cuál es "correcta" para que las palabras tengan significado. Si, como cultura, decidimos dar vuelta a la izquierda y a la derecha, entonces tendrías el mismo problema al descubrir qué es un "giro a la derecha" frente a un "giro a la izquierda" dado que el significado acordado había cambiado. Sin embargo, el nombramiento es arbitrario, por lo tanto, cuál es el que (en sí mismo) no importa; lo que importa es que todos estamos de acuerdo en el significado.

En su comentario, donde pregunta, "por favor no solo defina los términos", se está perdiendo el sentido, y creo que se está colgando de la fraseología cuando no hay absolutamente ninguna diferencia entre ellos.


Para el beneficio de los lectores futuros, ahora proporcionaré varios ejemplos de índice "hacia adelante" e "invertido":

Ejemplo 1: búsqueda web

Si estás pensando que el inverso de un índice es algo así como el inverso de una función en matemáticas , donde lo inverso es algo especial que tiene una forma diferente, entonces estás equivocado: ese no es el caso aquí.

En un motor de búsqueda tiene una lista de documentos (páginas en sitios web), donde ingresa algunas palabras clave y obtiene resultados.

Un índice directo (o solo índice) es la lista de documentos y las palabras que aparecen en ellos. En el ejemplo de búsqueda web, Google rastrea la web, crea la lista de documentos y averigua qué palabras aparecen en cada página.

El en.wikipedia.org/wiki/Inverted_index es la lista de palabras y los documentos en los que aparecen. En el ejemplo de búsqueda web, proporciona la lista de palabras (su consulta de búsqueda) y Google produce los documentos (enlaces de resultados de búsqueda).

Ambos son índices, solo se trata de la dirección en la que te diriges. Reenviar es de documentos-> a-> palabras, invertido es de palabras-> a-> documentos.

Ejemplo 2: DNS

Otro ejemplo es una búsqueda DNS (que toma un nombre de host y devuelve una dirección IP) y una búsqueda inversa (que toma una dirección IP y le da el nombre de host).

Ejemplo 3: un libro

El índice en la parte posterior de un libro es en realidad un índice invertido , como se define en los ejemplos anteriores: una lista de palabras y dónde encontrarlas en el libro. En un libro, la tabla de contenidos es como un índice hacia adelante : es una lista de documentos (capítulos) que contiene el libro, excepto que en lugar de enumerar las palabras en esas secciones, la tabla de contenido simplemente da un nombre / descripción general de lo que contenido en esos documentos (capítulos).

Ejemplo 4: Tu teléfono celular

El índice directo en su teléfono celular es su lista de contactos, y los números de teléfono (celular, casa, trabajo) están asociados con esos contactos. El índice invertido es lo que le permite ingresar manualmente un número de teléfono, y cuando presiona "marcar", verá el nombre de la persona, en lugar del número, porque su teléfono tomó el número de teléfono y le encontró el contacto asociado.


Una diferencia más:

El manejo de las actualizaciones con el índice invertido es costoso en comparación con el índice directo.

El índice directo maneja las actualizaciones fácilmente al reflejar los cambios solo en el índice del documento correspondiente, mientras que en el índice invertido, el mismo cambio debe reflejarse en múltiples posiciones en el índice invertido.


en índices invertidos, tenemos la siguiente forma:

word1-> list of docs aparece en (orden ordenado)

word2-> list of docs aparece en (orden ordenado)

Es muy útil para el procesamiento de consultas de motores de búsqueda, ya que nos permite encontrar los documentos en los que aparece la palabra.

Puede usar la máquina supervisada que está aprendiendo a construir este índice invertido.


típicamente cuando se habla de índice, se refiere a algunos cálculos agregados o resultados almacenados de procedimientos que se han realizado para acelerar la aplicación (p. ej., MySQL u otros RDBMS, consulte los documentos de MySQL ). La indexación también puede estar relacionada con el almacenamiento en caché, etc.

El índice invertido crea un archivo con una estructura que es principalmente intendente para la búsqueda (de texto completo).

El índice invertido consta de dos archivos principales:

  • Vocabulario
  • Ocurrencias

En el vocabulario son palabras comunes extraídas del texto (por supuesto después de filtrar las palabras de la lista negra como pronombres). El archivo de ocurrencias contiene la conexión entre palabras y documentos (la palabra 1 aparece en doc1 y doc2, no en doc3). Está representado en forma de matriz.

En la imagen de arriba se muestra el proceso de creación de los dos archivos mencionados.

Si usted está más interesado en esta problemática, le puedo recomendar un excelente libro escrito por Ricardo Yated - Modern Information Retrieval (Véalo en Amazon ) - sobre la página 200, creo.

Espero eso ayude :-)


normalocity ya ha diferenciado maravillosamente entre un índice directo y uno invertido, pero para la pregunta de por qué uno se llama un índice adelantado y el otro un índice invertido, quizás es por eso que se los llama así:

Tomando como ejemplo el rastreo e indexación del motor de búsqueda (o el índice de creación para un libro), se puede generar un índice hacia adelante simultáneamente mientras rastrea las páginas web (o lee el libro) o avanza . Entonces, si tiene 10 páginas web para rastrear (o 10 capítulos en un libro) puede rastrear la primera página web (leer el primer capítulo) y luego hacer una lista de palabras que aparecen en la página web (palabras que aparecen en el capítulo) y continuar este proceso para otras páginas web (otros capítulos) por lo que cuando haya rastreado las 10 páginas web (lea los 10 capítulos) su índice directo se completa con cada página web (capítulo) apuntando a una lista de palabras que contiene .

Pero para hacer un índice invertido, tiene que rastrear las 10 páginas web (leer los 10 capítulos) y luego tomar cada palabra de cada lista de documentos y descubrir qué documentos contienen esa palabra. Esto es como retroceder una vez que ha rastreado las páginas web (lea los capítulos del libro) . Entonces se llama un índice invertido.

Esta es solo mi especulación.