Um índice invertido é uma estrutura de dados de índice que armazena um mapeamento de conteúdo, como palavras ou números, para suas localizações em um documento ou conjunto de documentos. Em palavras simples, é um hashmap como uma estrutura de dados que o direciona de uma palavra para um documento ou página da web. 

Existem dois tipos de índices invertidos: Um índice invertido em nível de registro contém uma lista de referências a documentos para cada palavra. Um índice invertido em nível de palavra contém adicionalmente as posições de cada palavra em um documento. A última forma oferece mais funcionalidade, mas precisa de mais capacidade de processamento e espaço para ser criada. 

Suponha que queremos pesquisar os textos “olá a todos”, “este artigo é baseado em índice invertido”, “que é uma estrutura de dados semelhante a um hashmap”. Se indexarmos por (texto, palavra dentro do texto), o índice com localização no texto é: 
 

 hello                (1, 1)
 everyone             (1, 2)
 this                 (2, 1)
 article              (2, 2)
 is                   (2, 3); (3, 2)
 based                (2, 4)
 on                   (2, 5)
 inverted             (2, 6)
 index                (2, 7)
 which                (3, 1)
 hashmap              (3, 3)
 like                 (3, 4)
 data                 (3, 5)
 structure            (3, 6)

A palavra “hello” está no documento 1 (“hello everyone”) começando na palavra 1, então tem uma entrada (1, 1) e a palavra “is” está no documento 2 e 3 nas posições '3ª' e '2ª' respectivamente (aqui a posição é baseada na palavra). 
O índice pode ter pesos, frequências ou outros indicadores. 

Passos para construir um índice invertido:

  • Busque o documento 
    Removendo palavras de parada: As palavras de parada são as palavras mais comuns e inúteis em documentos como “eu”, “o”, “nós”, “é”, “um”.
  • Derivação da palavra raiz 
    Sempre que desejo pesquisar “gato”, desejo ver um documento que contém informações sobre ele. Mas a palavra presente no documento é chamada de “gatos” ou “maliciosos” em vez de “gato”. Para relacionar as duas palavras, cortarei alguma parte de cada palavra que leio para que possa obter a “palavra raiz”. Existem ferramentas padrão para fazer isso, como “Porter's Stemmer”.
  • Registre IDs de documentos 
    Se a palavra já estiver presente, adicione a referência do documento para indexar, caso contrário, crie uma nova entrada. Adicione informações adicionais, como frequência da palavra, localização da palavra, etc.

Exemplo:

Words                 Document
ant                   doc1
demo                  doc2
world                 doc1, doc2

As vantagens do índice invertido são: 

  • O índice invertido permite pesquisas rápidas de texto completo, a um custo de processamento aumentado quando um documento é adicionado ao banco de dados.
  • É fácil de desenvolver.
  • É a estrutura de dados mais popular usada em sistemas de recuperação de documentos, usados ​​em grande escala, por exemplo, em motores de busca.

O índice invertido também tem desvantagens: 

  • Grande sobrecarga de armazenamento e altos custos de manutenção na atualização, exclusão e inserção.